我已经按照How to trace SOAP message in Eclipse IDE中给出的步骤在我的eclipse上配置了TCP / IP监视器,但是当我执行我的客户端代码时,TCP只监视wsdl URL而不是我对客户端的服务请求。 / p>
在上图中,我在我的webservice上向sayHello
发出请求,但TCP监视器正在向wsdl显示请求。我想在我的eclipse中看到SOAP请求和响应消息。我怎样才能做到这一点?请帮帮我。
答案 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("...");
多么糟糕。