2013-09-26 34 views
0

我有一個webservice的JAX-WS,我需要得到肥皂頭,我有這樣的:如何獲取SOAPHEADER上JAXWS WebService的

@Resource 
private WebServiceContext context; 

MessageContext msContext = context.getMessageContext(); 
SOAPMessageContext soapMsgContext = (SOAPMessageContext) msContext; 
SOAPHeader soapHeader = soapMsgContext.getMessage().getSOAPHeader(); 
Iterator it=soapHeader.extractAllHeaderElements(); 

但我有問題投了MessageContext,SOAPMessageContext,但我不能使SoapHandler,因爲我不能將對象從處理程序發送到Web服務,因爲發送我需要放在應用程序範圍的對象,我不希望這一點。

+0

你說你有一個將MessageContext轉換爲SoapMessageContext的問題。你有什麼問題? 'getMessageContext()'返回的對象的實際類型是什麼? – Kenster

回答

0

希望收到什麼標題?由於javax.xml.ws.handler.MessageContext過一個Map<String, Object>,您可以打印的所有內容:

import java.util.Map; 

import javax.annotation.Resource; 
import javax.jws.WebService; 
import javax.xml.ws.WebServiceContext; 

@WebService 
public class HelloWS { 

    @Resource 
    private WebServiceContext ctx; 

    public String sayHello(String name) { 
     Map<String, Object> map = ctx.getMessageContext(); 
     for (Object obj : map.entrySet()) { 
      System.out.println(obj); 
     } 
     return "Hello, " + name; 
    } 

} 
1

不知道你正在使用的JAX-WS版本。

@WebMethod 
public myResource(@WebParam(name = "MyHeader", header = true) String myHeader) { 
... 
} 

應該做的伎倆。

+1

這(myHeader)返回null –

+0

相同,我在我的項目中爲null。如何獲得價值? – squallbayu

相關問題