webservice用axis实现方式客户端参数的意思?

客户端调用服务端执行到 (String) call.invoke(obj);时报错:The given SOAPAction “命名空间/方法名” does not match an operation.

客户端代码如下:

String interfaceName = "aaa";
Service service = new Service();
Call call;
call = (Call) service.createCall();
String url="http://localhost:8080/Service";
call.setTargetEndpointAddress(new java.net.URL(url));
String qName="http:/temp.org/";
call.setOperationName(new QName(qName, interfaceName));
String xmlPara="arg0";
call.addParameter(new QName("", xmlPara), org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
call.setUseSOAPAction(true);
call.setReturnType(org.apache.axis.encoding.XMLType.SOAP_STRING);
call.setSOAPActionURI(qName + interfaceName);
Object obj[] = new Object[] { "" };
String serviceReturnXml = (String) call.invoke(obj);
System.out.println(serviceReturnXml);
我把下面两行去掉就好用,请问是什么原因?
call.setUseSOAPAction(true);
call.setSOAPActionURI(qName + interfaceName);

下面两个参数

call.setOperationStyle(org.apache.axis.constants.Style.RPC);
call.setOperationUse(org.apache.axis.constants.Use.ENCODED);

这两个参数是什么意思?
谢谢各位老师帮忙解答。

阅读 3.2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题