2011-04-27 78 views
3

如果可能,我如何獲取由Axis在應用程序中調用/檢索的原始XML請求/響應?在會話中存儲軸原始XML請求/響應(將在JSP中使用)

我正在使用Axis附帶的WSDL2Java來生成Java存根。

編輯:

我現在有是使用Axis來處理遠程API調用的應用程序。

其中一個要求是在會話中「存儲」來自這些調用的所有XML請求/響應,以便它可以在JSP中使用(用於調試目的)。我怎樣才能做到這一點?

我試着寫一個自定義的處理程序,extends BasicHandler但在處理,我還是不能讓從MessageContext

回答

-1

的我結束了使用此question

基本上,我用它描述的解決方案來獲得的HttpServletRequest的舉行,並從那裏我在會話中設置適當的項目。

0

你爲什麼不寫一個服務器端的SOAP處理的HttpServletRequest/HttpServletResponse對,弄個MessageContext和我相信有一種方法可以從那裏獲得有效載荷。如果你想把它傳遞給下游,那麼把它放在本地線程中。見例如處理器here

+0

應用程序使用的是由提供的API服務器。我爲什麼要編寫一個服務器端處理程序? – ryanprayogo 2011-04-28 01:26:22

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

然後你就可以將其保存在你想要的文件...