什麼是從PayloadEndpoint訪問MessageContext的「規範」方法?Spring-WS:如何從PayloadEndpoint訪問MessageContext
我們正在使用PayloadEndpoint和AbstractMarshallingPayloadEndpoint,它們沒有將MessageContext暴露給它們的invoke/invokeinternal方法,但現在需要訪問HTTP請求參數。
什麼是從PayloadEndpoint訪問MessageContext的「規範」方法?Spring-WS:如何從PayloadEndpoint訪問MessageContext
我們正在使用PayloadEndpoint和AbstractMarshallingPayloadEndpoint,它們沒有將MessageContext暴露給它們的invoke/invokeinternal方法,但現在需要訪問HTTP請求參數。
我能想到的最簡單的方法是:創建一個實現MessageEndpoint的'包裝器'端點。然後,您可以提取您的請求參數並將它們傳遞給您的實際端點。
您可以將請求變量存儲在ThreadLocal中,以便原始端點可以訪問它們。
有人在春季論壇suggested上使用TransportContext來訪問HTTP請求參數。這有助於解決我們的特定問題,但不回答如何獲取MessageContext的原始問題。
另一個想法是引入EndpointInterceptor並使用ThreadLocal。但我希望有一種感覺不像破解的方式。
這就是我們成功使用的方法。 EndpointInterceptor方法目前不工作(從Spring-ws 1.5.4開始),因爲無論如何連接都被訪問 - 即使攔截器設置了響應。 – 2008-11-03 13:19:11