Web服务的简单java客户端代码与QName有关吗?
当我到达调用我在Tomcat/Axis上运行的一个非常基本的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;
}
# 1 楼答案
正如异常所说,您错误地调用了QName构造函数:
这是不正确的。我认为必须传递两个字符串,一个包含名称空间,一个包含localname。文档通常会包含关于如何使用该类的描述
# 2 楼答案
只要在你的案子上输入我的名字就可以了
call.setOperationName("doBasicStuff");
# 3 楼答案
新的QName(“soapenc:string”、“doBasicStuff”)
# 4 楼答案
您应该使用以下选项之一:
但是 新的QName(“^a1},doBasicStuff”) 是错误的,因为两个值在同一个字符串中“,…”
问候
# 5 楼答案
可能是你的名字有误吗
而不是: