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.