如何在eclipse中捕获SOAP消息

时间:2015-10-23 09:55:14

标签: java eclipse web-services soap wsdl

我已经按照How to trace SOAP message in Eclipse IDE中给出的步骤在我的eclipse上配置了TCP / IP监视器,但是当我执行我的客户端代码时,TCP只监视wsdl URL而不是我对客户端的服务请求。 / p>

enter image description here

在上图中,我在我的webservice上向sayHello发出请求,但TCP监视器正在向wsdl显示请求。我想在我的eclipse中看到SOAP请求和响应消息。我怎样才能做到这一点?请帮帮我。

1 个答案:

答案 0 :(得分:1)

这就是:

a)客户端发送对wsdl的请求。您在TCP / IP监视器中看到此请求 b)端点发送wsdl。它包含一个

<soap:address location="...."></soap:address>

指向真实的端点地址。

c)客户端使用此地址发送soap请求,绕过TCP / IP监视器。

作为一种变通方法,您需要使用监视器地址覆盖WSDL中指定的地址:

HelloWorld hello = service.getPort(HelloWorld.class)
((BindingProvider)hello).getRequestContext()
   .put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,"http://localhost:8081/HelloWorldSoapWS/hello");
hello.sayHello("...");

多么糟糕。