Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Collections;
- import java.util.Set;
- import javax.xml.namespace.QName;
- import javax.xml.soap.SOAPElement;
- import javax.xml.soap.SOAPEnvelope;
- 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;
- import org.apache.log4j.Logger;
- /**
- *
- * @author BashirovMA
- */
- public class MyHandler implements SOAPHandler<SOAPMessageContext> {
- static final Logger log = Logger.getLogger(MyHandler.class);
- private String username;
- private String password;
- public MyHandler() {
- this.username = "";
- this.password = "";
- }
- public MyHandler(String username, String password) {
- this.username = username;
- this.password = password;
- }
- public MyHandler(String username, String password) {
- this.username = username;
- this.password = password;
- }
- @Override
- public boolean handleMessage(SOAPMessageContext smc) {
- SOAPMessage msg = smc.getMessage();
- Boolean outboundProperty = (Boolean) smc.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
- if (outboundProperty.booleanValue()) {
- try {
- SOAPEnvelope envelope = smc.getMessage().getSOAPPart().getEnvelope();
- if (envelope.getHeader() != null) {
- envelope.getHeader().detachNode();
- }
- SOAPHeader header = envelope.addHeader();
- SOAPElement root = header.addHeaderElement(envelope.createName("messageHeader", "", "http://services.ws.com/"));
- SOAPElement el1 = root.addChildElement(envelope.createName("username", "", ""));
- el1.setValue(String.valueOf(username));
- SOAPElement el2 = root.addChildElement(envelope.createName("password", "", ""));
- el2.setValue(String.valueOf(password));
- msg.saveChanges();
- } catch (Exception e) {
- e.printStackTrace();
- log.error(e);
- }
- } else {
- try {
- SOAPMessage message = smc.getMessage();
- message.writeTo(System.out);
- } catch (Exception ex) {
- ex.printStackTrace();
- log.error(ex);
- }
- }
- return true;
- }
- @Override
- public Set<QName> getHeaders() {
- return null;
- }
- @Override
- public boolean handleFault(SOAPMessageContext messageContext) {
- return true;
- }
- @Override
- public void close(MessageContext context) {
- }
- }
Add Comment
Please, Sign In to add comment