我正在JBoss6服務器上運行基於Apache CXF 2.3.1的JAX-WS Web服務。Apache CXF:將信息從攔截器轉發到實際的web服務實現
我的服務提供功能getWeight
。根據SOAP頭中的附加信息,該函數應該以不同的單位(公斤,磅)返回值。爲了這個目的我已經加入我自己的攔截:
public class MySoapHeaderInterceptor extends AbstractSoapInterceptor
{
public MySoapHeaderInterceptor()
{
super(Phase.USER_PROTOCOL);
}
...
}
攔截工作正常,我可以從SOAP頭解析額外的元素,可以建立基於此元素的變量:
boolean poundsRequested = true;
現在我的問題發生。我不知道如何將變量poundsRequested
轉發給我的實際WebService實現MyServiceImpl
。這個類正在調用另一個類ValueReader
,我最終需要SOAP頭中的信息。
我已經嘗試設置一個全局靜態變量ValueReader.poundsRequested
。但是這樣的解決方案不是線程安全的。可能會發生兩個客戶端的調用發生干擾,並且可能會覆蓋其他設置變量。
總結:我基本上需要從Apache CXF攔截器轉發變量到實際的web服務實現的可能性。而且這個變量的值需要對每個請求都是唯一的。
Waitaminute ...你在標題中傳遞真實的功能信息? –