Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用ApacheAxis时如何打印SOAP消息内容_Java_Web Services_Soap_Axis2 - Fatal编程技术网

Java 使用ApacheAxis时如何打印SOAP消息内容

Java 使用ApacheAxis时如何打印SOAP消息内容,java,web-services,soap,axis2,Java,Web Services,Soap,Axis2,我正在使用ApacheAxis实现web服务自动化 我正在通过Axis准备SOAP请求,并进一步访问web服务。 我正在寻找的是如何打印SOAP请求内容,该内容正在编译并访问Web服务 我发现log4j可以帮上忙,但我正在为如何使用它而挣扎。使用日志并尝试记录消息 你可能不再需要这个答案了,但你会留在这里,为那些最终遇到同样问题的人服务 检索请求和响应的最简单方法是从您正在拨打的电话中获取它们。在axis生成的存根中,调用调用后执行以下操作: String requestXML = _call.

我正在使用ApacheAxis实现web服务自动化

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

我发现log4j可以帮上忙,但我正在为如何使用它而挣扎。

使用日志并尝试记录消息


你可能不再需要这个答案了,但你会留在这里,为那些最终遇到同样问题的人服务

检索请求和响应的最简单方法是从您正在拨打的电话中获取它们。在axis生成的存根中,调用调用后执行以下操作:

String requestXML = _call.getMessageContext().getRequestMessage().getSOAPPartAsString();
String responseXML = _call.getMessageContext().getResponseMessage().getSOAPPartAsString();

希望能有帮助。当我需要打印请求时,它也帮助了我

我也很难弄明白这一点。我的问题是我的_调用。invoke()失败了。我能够在一个try-catch子句中围绕这一点,但仍然得到了调试的请求消息:

例如:

try{
    _call.invoke();
catch(Exception e){
    _call.getMessageContext().getRequestMessage().getSOAPPartAsString();
}

这是axis2配置文件。
\u call
是什么类型的对象?它的类型是org.apache.axis.client.call。我如何访问该调用?正如Brian在回答中提到的,如果调用本身失败,将其包装在try-catch块中并获取消息。@Eric如果使用Apache Axis生成对象,则对象调用大部分时间位于BindingStub.java文件中。这很简单,但对已接受的答案来说是一个非常重要的补充。
try{
    _call.invoke();
catch(Exception e){
    _call.getMessageContext().getRequestMessage().getSOAPPartAsString();
}