Hello Tenchnocrats,
 
I am getting the following error while invoking the "getSession" method of 
sessionmanager webservice deployed in weblogic OCSG.
I have created a soap message properly but its giving error as 
"javax.xml.soap.SOAPException: No Security header in message but required by 
policy."
 
The SOAP message created is by below code is:
"<soapenv:Envelope 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";><soapenv:Header><ns1:SecurityToken
 
xmlns:ns1="http://www.bea.com/wsdl/wlcp/wlng/session_manager/service";><username>sdpai</username><password>sdp</password></ns1:SecurityToken></soapenv:Header><soapenv:Body><ns2:getSession
 
xmlns:ns2="http://www.bea.com/wsdl/wlcp/wlng/session_manager/service";><aName>TextMode</aName></ns2:getSession></soapenv:Body></soapenv:Envelope>"

and the error I am getting is:
 
javax.xml.soap.SOAPException: No Security header in message but required by 
policy.

at 
org.apache.axis2.saaj.SOAPConnectionImpl.handleSOAPMessage(SOAPConnectionImpl.java:194)

at org.apache.axis2.saaj.SOAPConnectionImpl.call(SOAPConnectionImpl.java:130)

at test.SOARequest.main(SOARequest.java:101)

Caused by: org.apache.axis2.AxisFault: No Security header in message but 
required by policy.

at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:512)

at 
org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:370)

at 
org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:416)

at 
org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228)

at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)

at 
org.apache.axis2.saaj.SOAPConnectionImpl.handleSOAPMessage(SOAPConnectionImpl.java:188)

... 2 more

 
My Code is:
SOAPConnectionFactory sfc = SOAPConnectionFactory.newInstance();
SOAPConnection connection = sfc.createConnection();
MessageFactory mf = MessageFactory.newInstance();
SOAPMessage sm = mf.createMessage();
SOAPPart soapPart = sm.getSOAPPart();
SOAPEnvelope soapEnvelope = soapPart.getEnvelope();
SOAPHeader soapHeader = soapEnvelope.getHeader();
SOAPHeaderElement headerElement = soapHeader
.addHeaderElement(soapEnvelope
.createName("SecurityToken", "ns1",
http://www.bea.com/wsdl/wlcp/wlng/session_manager/service));
QName qn1 = new QName("username");
SOAPElement quotation1 = headerElement.addChildElement(qn1);
quotation1.addTextNode("XXX");
QName qn2 = new QName("password");
SOAPElement quotation2 = headerElement.addChildElement(qn2);
quotation2.addTextNode("XXX");
SOAPBody sb = sm.getSOAPBody();
// sh.detachNode();
QName bodyName = new QName(
http://www.bea.com/wsdl/wlcp/wlng/session_manager/service,
"getSession", "ns2");
SOAPBodyElement bodyElement = sb.addBodyElement(bodyName);
QName qn = new QName("aName");
SOAPElement quotation = bodyElement.addChildElement(qn);
quotation.addTextNode("TextMode");
sm
.setContentDescription("This is the request message for getting session ID");
System.out.println("\n Soap Request:\n");
sm.writeTo(System.out);
System.out.println();
System.out.println("My SOAP Message description is: "
+ sm.getContentDescription());
URL endpoint = new URL(
http://localhost:8001/session_manager/SessionManager);
SOAPMessage response = connection.call(sm, endpoint);
System.out.println(response);
System.out.println(response.getContentDescription());

Though my soap message have the header information, error says it doesnt have. 
please help me with this. 






This message is for the designated recipient only and may contain privileged, 
proprietary, or otherwise private information.  If you have received it in 
error, please notify the sender immediately and delete the original.  Any other 
use of the email by you is prohibited.

Reply via email to