在会话中存储Axis原始XML请求/响应(将在JSP中使用)

如果可能,如何获取Axis在我的应用程序中调用/检索的原始XML请求/响应?

我正在使用Axis附带的WSDL2Java来生成Java存根。

编辑:

我目前拥有的是一个使用Axis处理远程API调用的应用程序。

其中一个要求是在会话中“存储”来自这些调用的所有XML请求/响应,以便它在JSP中可用(用于调试目的)。 我怎样才能做到这一点?

我尝试编写一个extends BasicHandler的自定义处理程序,但在该处理程序中,我仍然无法从MessageContext获取HttpServletRequest / HttpServletResponse

经过一段时间搜索它就像这样简单:

//在_call.invoke(…)之后;

 //Request String request = _call.getMessageContext().getRequestMessage().getSOAPPart().getEnvelope().getBody().toString(); //Response String response = _call.getMessageContext().getResponseMessage().getSOAPPart().getEnvelope().getBody().toString(); 

其中_call是org.apache.axis.client.Call

然后你可以将它保存在你想要的文件中……

为什么不编写服务器端的soap处理程序,获取MessageContext,我相信有一种方法可以从那里获取有效负载。 如果要将其传递给下游,则将其放在本地线程中。 请参阅此处的处理程序

我最终使用了这个问题中描述的解决方案

基本上,我用它来获取HttpServletRequest,并从那里我在会话中设置了正确的项目。