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
Related videos on Youtube
Author by
Patan
Updated on June 04, 2022Comments
-
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 over 11 yearsThank 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