1.客户端调用服务端执行到 (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);
2.下面两个参数
call.setOperationStyle(org.apache.axis.constants.Style.RPC);
call.setOperationUse(org.apache.axis.constants.Use.ENCODED);
这两个参数是什么意思?
谢谢各位老师帮忙解答。