Java 如何从web服务中调用web服务

Java 如何从web服务中调用web服务,java,web-services,axis2,Java,Web Services,Axis2,我正在尝试创建一个web服务,它是另一个web服务的使用者。这是布局图 我开发了一个Java类,并用它创建了一个Web服务 然后,我使用Eclipse工具生成客户端存根和其他文件 我将这些文件打包在一个jar中,并在另一个项目中使用它。我测试了jar中的文件,以便能够访问第一个web服务 现在,我从测试第一个Web服务的项目中创建了另一个Web服务 现在,当我向第二个web服务编写客户机时,它似乎无法找到第一个web服务的存根。给我以下的错误 org.apache.axis2.AxisFault

我正在尝试创建一个web服务,它是另一个web服务的使用者。这是布局图

我开发了一个Java类,并用它创建了一个Web服务

然后,我使用Eclipse工具生成客户端存根和其他文件

我将这些文件打包在一个jar中,并在另一个项目中使用它。我测试了jar中的文件,以便能够访问第一个web服务

现在,我从测试第一个Web服务的项目中创建了另一个Web服务

现在,当我向第二个web服务编写客户机时,它似乎无法找到第一个web服务的存根。给我以下的错误

org.apache.axis2.AxisFault: com/cats/patient/PatientDataStub
    at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:512)
    at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:370)
    at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:416)
    at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228)
    at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
    at com.esps.patient.PatientDataESPSStub.getPatientByID(PatientDataESPSStub.java:186)
    at com.esps.patient.ESPSTestClient.main(ESPSTestClient.java:22)

我已将所有JAR合并到所有项目中。

查看异常客户端,发现WS1的存根。读取响应时发生异常错误


尝试查看请求和响应是什么。在tcpmon之前,您可以通过放置一些调试信息来检查WS1是否接收到来自客户端的任何请求。

如果您使用的是Spring frawe work,那么我建议您使用RestTemplate从另一个Web服务调用另一个Web服务

这两个web服务是否都位于同一个应用程序服务器实例上?i、 在同一场tomcat战争中。我不太清楚-你的意思是说客户和WebService1对话,而WebService1和WebService2对话。谁找不到WebService2的存根?是WebService1还是你在客户端得到的?Nathan,是的,两个webservices都在同一个tomcat Server实例上,但在不同的上下文中。Bhushan,客户端无法找到WS2而不是WS1的存根。客户端---->web服务1---->web服务2有ws1存根jars客户端---->web服务1---->web服务2 cient和ws1项目都有ws2存根jars客户端与ws1对话,ws1与ws2对话。我已经在客户端打包了WS2的存根罐,但仍然没有打包。我在WS1中使用的是WS2的存根,不是客户端,仅供参考。谢谢,但是情况仍然很普遍,你真的需要正确地提出你的问题,所以造成了很多混乱。再次阅读您的评论,您说客户机与WS1对话,但您将WS2的存根放在了一起。如果您不将WS1的存根放在客户端,它将如何获得存根?很抱歉,我将再次尝试解释consumes consumes client----------------->WS1----------------->WS2有WS2和WS2存根jars WS1存根jars再次此东西无法保存格式化…客户端再次使用WS1和WS1使用WS2。。WS1包含用于WS1存根的JAR,而客户端具有用于WS2和WS1存根的JAR。。情况就是这样。希望更清楚