0
我想知道是否攔截器發出的SOAP
請求通過JAX-WS
(CXF/JAXB)保證在調用發生時在同一線程中運行?與調用相同的線程中的JAX-WS請求和響應攔截器?
我問的原因是因爲我想使用一些請求ID參數作爲關鍵字將原始請求和響應(XML轉儲)記錄到數據庫。我不知道如何將這個ID傳遞給攔截器,除了在調用JAXB
之前將它設置爲ThreadLocal變量並在攔截器中檢索它。我還沒有看到其他原因導致這個策略是一個壞主意嗎?
獲得根據企業的性質來/你並不需要一個ThreadLocal,看到這個答案http://stackoverflow.com/a/ 12690600/116509 – artbristol
你說得對,我可以使用消息交換來解決它,謝謝!但是我仍然很好奇,是否有某種方法可以方便可靠地方便地從代碼中執行實際的JAXB方法調用(例如事務ID)的代碼部分向攔截器發送特定於請求的參數。因爲在攔截器之外似乎沒有消息交換。 –
對於這種情況,threadlocal是要走的路。如果您使用Spring/CDI /其他框架,它將提供請求範圍的代理(使用下面的ThreadLocal)來讓您執行此操作。您可能還想在日誌框架中查看Mapped/Nested Diagnostic Contexts。 – artbristol