import javax.xml.soap.SOAPElement; import javax.xml.soap.SOAPEnvelope; import javax.xml.soap.SOAPException; import javax.xml.soap.SOAPHeader; import javax.xml.soap.SOAPMessage; import javax.xml.ws.handler.MessageContext; import javax.xml.ws.handler.soap.SOAPHandler; import javax.xml.ws.handler.soap.SOAPMessageContext; public class WebServiceHandler implements SOAPHandler { private String userId; private String ip; public WebServiceRelatoriosHandler(String userId, String ip) { this.userId = userId; this.ip = ip; } public boolean handleMessage(SOAPMessageContext messageContext) { SOAPMessage msg = messageContext.getMessage(); if((Boolean) messageContext.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY)) { try { SOAPEnvelope envelope = msg.getSOAPPart().getEnvelope(); SOAPHeader header = envelope.addHeader(); SOAPElement el = header.addChildElement(envelope.createName("userId", "wshh", "http://mycompany.com.br/wsheaderhandlers")); el.setValue(userId); el = header.addChildElement(envelope.createName("ip", "wshh", "http://mycompany.com.br/wsheaderhandlers")); el.setValue(ip); msg.saveChanges(); } catch (SOAPException e) { return false; } } return true; } public boolean handleFault(SOAPMessageContext messageContext) { return true; } public void close(MessageContext messageContext) { } public Set getHeaders() { return new HashSet(); } }