第一次接触WebService,别人提供的WebService接口,本人试着用Java编写的客户端去调用服务。
结果卡在下面报错的地方了。网上也查看了很多相似的错误,但是还是无法解决,所以求帮助各位高手了。
错误信息:
信息: Deploying module: addressing-1.3
org.apache.axis2.AxisFault: The given SOAPAction urn:anonOutInOp does not match an operation.
at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:486)
at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:343)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:389)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:211)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:528)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:508)
at test.Test.queryMessageFile(Test.java:157)
at test.Test.main(Test.java:44)
WSDL内容:


客户端代码:
结果卡在下面报错的地方了。网上也查看了很多相似的错误,但是还是无法解决,所以求帮助各位高手了。
错误信息:
信息: Deploying module: addressing-1.3
org.apache.axis2.AxisFault: The given SOAPAction urn:anonOutInOp does not match an operation.
at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:486)
at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:343)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:389)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:211)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:528)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:508)
at test.Test.queryMessageFile(Test.java:157)
at test.Test.main(Test.java:44)
WSDL内容:


客户端代码:
OMFactory fac = OMAbstractFactory.getOMFactory();
// 命名空间
OMNamespace omNs = fac.createOMNamespace("http://webservice.creditreport.p2p.sino.com/", "");
// 调用的WebService方法
OMElement ome = fac.createOMElement("queryBatchCreditFile", omNs);
// 参数1设定
OMElement omeOrgcode = fac.createOMElement("orgcode", omNs);
omeOrgcode.setText(orgcode);
// 参数2设定
OMElement omeSecret = fac.createOMElement("secret", omNs);
omeSecret.setText(secret);
// 参数3设定
OMElement omeFilename=fac.createOMElement("filename", omNs);
// 文件名取得
String fileName = filePath.substring(filePath.lastIndexOf("/") + 1);
omeFilename.setText(fileName);
ome.addChild(omeOrgcode);
ome.addChild(omeSecret);
ome.addChild(omeFilename);
Options options = new Options();
EndpointReference targetEPR = new EndpointReference(targetAddr);
options.setTo(targetEPR);
// 设定调用方法名
options.setAction("");
// Cookie设定
StringBuffer cookieSb = new StringBuffer();
options.setManageSession(true);
cookieSb.append("Set-Cookie:");
for(Cookie cookie:cookies) {
cookieSb.append(cookie);
cookieSb.append(";");
}
options.setProperty(HTTPConstants.COOKIE_STRING, cookieSb.toString());
// 禁用HTTP传输分段特性,避免报错
options.setProperty(HTTPConstants.CHUNKED, false);
ServiceClient sc = new ServiceClient();
sc.setOptions(options);
// 调用方法
OMElement out = sc.sendReceive(ome);
String outStr = out.getText();
System.out.println(outStr);
解决方案