Java 使用ApacheAxis时如何打印SOAP消息内容
我正在使用ApacheAxis实现web服务自动化 我正在通过Axis准备SOAP请求,并进一步访问web服务。 我正在寻找的是如何打印SOAP请求内容,该内容正在编译并访问Web服务 我发现log4j可以帮上忙,但我正在为如何使用它而挣扎。使用日志并尝试记录消息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.
你可能不再需要这个答案了,但你会留在这里,为那些最终遇到同样问题的人服务 检索请求和响应的最简单方法是从您正在拨打的电话中获取它们。在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();
}