Záleží o jaké implementaci WS je řeč. Přo přístup ke kompletní zprávě (tedy i hlavičkám) je (v JAX-WS) určen WebserviceProvider. Tam lze určit, zda bude chodit jen payload nebo celá SOAP zpráva.

Řešit to přes Handler mě nepřijde ideální.

Arny

On 21.1.2011 16:07, Pavel Hora wrote:
Ahoj,

potřeboval bych získat header v obsluze WS metody. Jak na to? Existuje 
univerzální postup funkční na všech app. serverech? Níže uvedený postup selže - 
wsContext obsahuje instanci EndpointMessageContextImpl.

Napadlo mne uložit si header do threalLocal proměnné v SoapHandler a pak ho si 
ho v obslužné metodě přečíst, ale to také není čisté.

@WebService(name="SOAPEndpoint", 
targetNamespace="http://org.jboss.ws/jaxws/binding";,
   38:       endpointInterface = "org.jboss.test.ws.jaxws.binding.SOAPEndpoint")
   39: public class SOAPEndpointBean implements SOAPEndpoint
   40:   {
   42:
   43:   @Resource
   44:   public WebServiceContext wsContext;
   45:
   46:
   47:   public String someWsMethod()
   48:      {
   49:      try
   50:         {
   51:         SOAPMessageContext msgContext = 
(SOAPMessageContext)wsContext.getMessageContext();
   52:         SOAPMessage soapMessage = msgContext.getMessage();
...


(viz.: 
http://www.javadocexamples.com/java_source/org/jboss/test/ws/jaxws/binding/SOAPEndpointBean.java.html
 )

Používám WebLogic 9.


Díky,
pH.

Odpovedet emailem