Provided are get/set methods to access headers defined in WS-Addressing.
Depends on modules:
common
invoker
processor
soap*
To access WSA headers simpley wrap SOAP Envelope (or SOAP Header) element in WsaMessageInformationHeaders class and use its set/get methods to modify SOAP message content. Example:
WsaMessageInformationHeaders inHeaders = new WsaMessageInformationHeaders(envelope); XmlElement outMessageEnvelope; try { outMessageEnvelope = envelope.clone(); } catch (CloneNotSupportedException e) { throw new XsulException("internal error: could not clone message"); } WsaMessageInformationHeaders outHeaders = new WsaMessageInformationHeaders(outMessageEnvelope); inHeaders.getTo(); inHeaders.getReplyTo().getAddress(); inHeaders.getFaultTo().getAddress(); WsaRelatesTo relates = (WsaRelatesTo) inHeaders.getRelatesTo().iterator().next(); //if any ... relates.getRelationship(); relates.getRelationshipType(); inHeaders.getAction(); URI messageId = inHeaders.getMessageId(); if(messageId != null) { outHeaders.addRelatesTo(new WsaRelatesTo(messageId)); } outHeaders.setAction(respAction); outHeaders.setTo(WsAddressing.ROLE_ANONYMOUS_URI); outHeaders.setFrom(new WsaEndpointReference(serviceLocation));