使用axis生成的client code调用web service,ok;用另外一个web service 调用这个web service,failed。抛出异常:The server did not recognise the action which it received,信息以下: java
org.apache.axis2.AxisFault: The server did not recognise the action which it received:
at org.apache.axis2.handlers.addressing.AddressingInFaultHandler.invoke(AddressingInFaultHandler.java:114)
at org.apache.axis2.engine.Phase.invoke(Phase.java:318)
at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:251)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:160)
at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:364)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:417)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:539)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:520)
at org.apache.axis2.rpc.client.RPCServiceClient.invokeBlocking(RPCServiceClient.java:102)
at org.sanfan.cai.connector.ProcessServerServiceConnector.send(ProcessServerServiceConnector.java:108)
at org.sanfan.cai.action.SubmissionThread.run(SubmissionThread.java:47) web
解决办法:在wsdl文件的soapAction中设置OperationName,而后使用axis命令从新生成服务端和客户端代码,这样server就能找到这个action了。 apache
<wsdlsoap:operation soapAction=""/>