如何在使用Apache Axis时打印SOAP消息内容

R11*_*11G 8 java soap axis2 web-services

我正在使用Apache Axis进行Web服务自动化.

我正在通过Axis准备SOAP请求并进一步访问Web服务.我正在寻找的是如何打印正在编译和访问Web服务的SOAP请求内容.

我发现log4j可以提供帮助,但我正在努力使用它.

Pau*_*ues 16

你可能不再需要这个答案了,但是留在这里的任何其他人都会遇到同样的问题.

检索请求和响应的最简单方法是从正在进行的调用中获取它们.在轴生成的存根中,在调用调用之后执行以下操作:

String requestXML = _call.getMessageContext().getRequestMessage().getSOAPPartAsString();
String responseXML = _call.getMessageContext().getResponseMessage().getSOAPPartAsString();
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你.当我需要打印请求时,它帮助了我.

  • 它是org.apache.axis.client.Call类型. (2认同)

小智 5

我也很难弄清楚这一点。对我来说,问题是我的_call.invoke()失败了。我能够将其包含在try-catch子句中,并且仍然获得调试的请求消息:

例:

try{
    _call.invoke();
catch(Exception e){
    _call.getMessageContext().getRequestMessage().getSOAPPartAsString();
}
Run Code Online (Sandbox Code Playgroud)


Rat*_*tha 1

使用axis2handler并尝试记录消息。

  msgcontext.getEnvelope().getBody()
Run Code Online (Sandbox Code Playgroud)