Add wsse:UsernameToken in soap header

13,887

here is my past program for soap. I already modified it to your case.

//create SOAP
        SOAPConnectionFactory sfc = SOAPConnectionFactory.newInstance();
        SOAPConnection connection = sfc.createConnection();

        SOAPMessage soapMessage = MessageFactory.newInstance().createMessage();
        SOAPPart soapPart = soapMessage.getSOAPPart();
        SOAPEnvelope soapEnvelope = soapPart.getEnvelope();

        SOAPBody soapBody = soapEnvelope.getBody();
        SOAPElement Header = soapBody.addBodyElement(new QName("Header"));

//attribute                     
        SOAPElement Security= Header.addChildElement(new QName("Security"));
        SOAPElement UsernameToken= Security.addChildElement(new QName("UsernameToken"));
        SOAPElement Username= UsernameToken.addChildElement(new QName("Username"));
        SOAPElement Password= UsernameToken.addChildElement(new QName("Password"));

//enter the username and password
Username.addTextNode("username");
Password.addTextNode("password");

//send the soap and print out the result
URL endpoint = "http://localhost:8080/soap/getMessage?wsdl";
        SOAPMessage response = connection.call(soapMessage, endpoint);


        ByteArrayOutputStream out = new ByteArrayOutputStream();
        String xml = "";
        try {
            response.writeTo(out);
            xml = out.toString("UTF-8");
        } catch (Exception e) 
        {
            System.out.println(""+e);
            //log.error(e.getMessage(),e);
        }         

System.out.println(""+xml);

for further information you can search the google for using SOAP in JDK 1.6

Share:
13,887

Related videos on Youtube

Patan
Author by

Patan

Updated on June 04, 2022

Comments

  • Patan
    Patan almost 2 years

    I am working on SOAP client. My WSDL URL is http://localhost:8080/soap/getMessage?wsdl.

    This requires the the following header to specify the username and password.

    <wsdl:Envelope xmlns:soap="..."
            xmlns:wsse="..." >
           <wsdl:Header>
           <wsse:Security>
           <wsse:UsernameToken>
           <wsse:Username>admin</wsse:Username>
           <wsse:Password>password</wsse:Password>
           </wsse:UsernameToken>
           </wsse:Security>
           </wsdl:Header>
    </wsdl:Envelope>
    

    I have to write a program for it.

    Can some one help me.

    Thanks.

  • Patan
    Patan over 11 years
    Thank you for the answer. I am getting unauthorized exception when accessing the url.response = connection.call(soapMessage, endpoint);. My credentials are correct only. Can you tell do I need to add any thing extra