Q: How do a get/set headers in my web service code?
A: { { { You use the MessageContext object. } } }
Here is some example code
{{{ { { { // Get current message context } } }
{ { { MessageContext ctx = org.apache.axis.MessageContext.getCurrentContext(); } } } { { { // Get SOAP envelope of request } } } { { { SOAPEnvelope env = ctx.getRequestMessage().getSOAPEnvelope(); } } } { { { // Get Header } } } { { { ["SOAPHeaderElement"] soapHeaderElement = env.getHeaderByName(headerNamespace, headerName); } } } { { { // Get value of header, could be a complex type! } } } { { { Object value = soapHeaderElement.getObjectValue(); } } } }}}
Q: How do I set a header in the response to the client?
A: { { { Create a SOAPHeaderElement and add it to the SOAPEnvelope of the response message. } } }
{{{ { { { // Get current message context } } }
{ { { MessageContext ctx = org.apache.axis.MessageContext.getCurrentContext(); } } } { { { // Get SOAP envelope of response } } } { { { SOAPEnvelope env = ctx.getResponseMessage().getSOAPEnvelope(); } } } { { { // Create SOAP header object } } } { { { ["SOAPHeaderElement"] headerElement = } } } { { { new org.apache.axis.message.SOAPHeaderElement(headerNamespace, headerName, headerValue); } } } { { { headerElement.setMustUnderstand(mustUnderstand); } } } { { { // Set Header } } } { { { env.addHeader(headerElement); } } } }}}