2012-01-31 21 views
1

我正在編寫一個JAX-WS WebService,但是當涉及從SOAP頭中提取信息時,我遇到了一個絆腳石。我的WebService類都被註解@WebService和我與注入WebServiceContext到類:如何從JAX-WS類中提取SOAP頭信息?

@Resource 
private WebServiceContext webServiceContext; 

,但我在這一點上就如何提取SOAP頭信息有點卡住了。

我正在使用Spring 3,但還沒有看到任何方法/ util類或者可以解決一些問題。從我在網上看到的情況來看,我可以使用getMessageContext()並將其轉換爲SOAPMessageContext,但我發現很多人在這個級別失敗,抱怨沒有提供解決方案時出現投射問題。

我還沒有嘗試過,所以在我做之前,我想知道這是否是首選方法,或者是否有更好的方法來使用。

感謝,

埃裏克

回答

2

我想,你可以用一個消息處理程序得到這個SOAPMessageContext。您可以檢查響應here

實現這樣的SoapMessageHandler應該工作:

public class SoapHeadersHandler implements SOAPHandler<SOAPMessageContext> 
{ 

    @Override 
    public boolean handleMessage(SOAPMessageContext soapMessageContext) 
    { 
    try 
    { 
     Object[] headers = soapMessageContext.getHeaders(...); 
    } 
    catch (SOAPException e) 
    { 
     // Handle exception 
    } 

    return true; 
    } 

} 
+0

感謝。這正是我最終做的。 – 2012-02-09 02:48:14