3

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

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

编辑:

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

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

我尝试编写一个自定义处理程序,但在该处理程序中,extends BasicHandler我仍然无法从HttpServletRequestHttpServletResponseMessageContext

4

3 回答 3

14

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

//在你的 _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

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

于 2013-01-30T12:21:24.173 回答
0

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

于 2011-04-27T20:12:37.420 回答
-1

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

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

于 2011-04-28T20:27:11.753 回答