如果有人分享他解決以下問題的經驗,我將非常感激。 我在JDK實現(這是Metro,我相信)中有一個SOAP服務。從java soap handler獲取響應
爲了記錄目的,我們需要提取傳入請求和生成響應的正文。 我嘗試通過在服務器端實現SOAPHandler來獲取它。 我將處理程序配置爲Spring bean。 所有我發現實施例基本上覆制從Oracle文檔的例子:https://docs.oracle.com/cd/E23943_01/web.1111/e13734/handlers.htm#WSADV170:
public boolean handleMessage(SOAPMessageContext messageContext)
{
Boolean outboundProperty = (Boolean)
messageContext.get (MessageContext.MESSAGE_OUTBOUND_PROPERTY);
if (outboundProperty.booleanValue()) {
System.out.println("\nOutbound message:");
} else {
System.out.println("\nInbound message:");
}
System.out.println("** Response: "+messageContext.getMessage().toString());
return true;
}
這裏一個讀入,因爲我看到它,對應於任一請求或響應SOAP消息上下文的布爾屬性之一。
但是我的實驗中的調試器從來沒有進入對應於響應的分支(else-branch)。這樣的處理程序應該如何跟蹤請求和響應?
我也想知道什麼樣的信息被讀作messageContext.getMessage():這是進入的(要求)或出站(響應)
我現在不知道是否有可能確實是通過實現的handleMessage()方法來獲得訪問請求和響應? 單個處理程序是否攔截請求及其響應? 我誤解了這個例子嗎?
And ... SOAPHandler - 它是每個請求(請求 - 響應對)的特定實例嗎? 謝謝
是的,單一的方法攔截請求和響應。 – ACV