【发布时间】:2010-09-17 02:52:15
【问题描述】:
当我到达调用我在 Tomcat/Axis 上运行的真正 BASIC Web 服务的行时,我收到以下错误。
Element or attribute do not match QName production: QName::=(NCName':')?NCName
我的 QName 有什么问题吗?- 我什至找不到任何有用的信息。
我的客户端代码如下:
import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class TestClient {
public static void main(String [] args)
{
try{
String endpoint = "http://localhost:8080/TestWebService/services/DoesMagic";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress( new java.net.URL(endpoint) );
call.setOperationName( new QName("http://testPackage.fc.com/, doBasicStuff") );
String ret = (String) call.invoke( new Object[] {"some kind of message"} );
System.out.println(ret);
}catch(Exception e){
System.err.println(e.toString());
}
}
}
我的网络服务代码非常基础——只是一个简单的类,它返回您的输入字符串和一些连续文本:
public String doBasicStuff(String message)
{
return "This is your message: " + message;
}
【问题讨论】:
-
您是否有理由不将 wsdl2java 与 Axis 一起使用来为 Web 服务及其方法生成代理类?我不知道您是否只是在编写一些示例/测试代码,但通常您不需要自己使用 Call 对象或 invoke() 方法。 wsd2ljava 可能会为您节省大量时间。
标签: java web-services client rpc