Java:如何查看ServiceClient.sendReceive发送和接收的XML?

时间:2013-05-21 22:21:47

标签: java axis2

我正在尝试调试使用axis2使用.wsdl文件访问SOAP API时遇到的问题。我正在使用这种方法: http://axis.apache.org/axis2/java/core/api/org/apache/axis2/client/ServiceClient.html#sendReceive(org.apache.axiom.om.OMElement)

sendReceive正在抛出一个异常,我甚至无法判断它是由于发送的内容还是由于服务器的响应。我希望能够看到发送和接收的XML,但我通过数据包嗅探找到它的尝试被SSL挫败了。具体来说,我得到的错误是:

SOAPProcessingException First Element must contain the local name, Envelope , but 
  found definitions  org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.constructNode 
  (StAXSOAPModelBuilder.java:299)

XMLStreamException Can not output XML declaration, after other output has 
already been done.  com.ctc.wstx.sw.BaseStreamWriter.throwOutputError (BaseStreamWriter.java:1473)

第一个错误让我觉得我应该用SOAPEnvelope包装请求。当我这样做是因为我得到第二个错误。我希望能够查看XML,以便我可以确切地知道消息发生了什么。

1 个答案:

答案 0 :(得分:0)

如果您使用的是Windows,请安装Wireshark并监控适配器上的流量,以确定要发送和接收的内容。在Linux上,阅读tcpdump(8)

的手册页