Hai All, I have a wsdl with a single service and many operations.
The typical payload for an operation will look like this <soapEnv:Envelope> <soapEnv:Header> <sessonId>123123123141341</sessionId> <source>32312312312312</source> <security> <usernameToken> <userName>afjlksdajflas</userName> <password>fsdakljfaskljf</password> </usernameToken> </security> <soapEnv:Header> <soapEnv:Body> </soapEnv:Body> </soapEnv:Envelope> wsdl fragments corrosponding to that are given here <wsdl:types> <xsd:schema targetNamespace="xxxx" elementFormDefault="qualified"> <xsd:include schemaLocation="wsdl_types.xsd" /> <xsd:element name="sessionid" type="xsd:string" /> <xsd:element name="source" type="xsd:string" /> </xsd:schema> </wsdl:types> <!-- Message definitions --> <wsdl:message name="session"> <wsdl:part name="sessionTokenHeader" element="types:sessionid" /> </wsdl:message> <wsdl:message name="security"> <wsdl:part name="usernameTokenHeader" element="wsse:Security" /> </wsdl:message> <wsdl:message name="source"> <wsdl:part name="sourceTokenHeader" element="types:source" /> </wsdl:message> <wsdl:operation name="myoperation"> <wsdl:input> <wsdlsoap:header message="tns:session" part="sessionTokenHeader" use="literal" /> <wsdlsoap:header message="tns:security" part="usernameTokenHeader" use="literal" /> <wsdlsoap:header message="tns:source" part="sourceTokenHeader" use="literal" /> <wsdlsoap:body use="literal" /> </wsdl:input> <wsdl:output> <wsdlsoap:body use="literal" /> </wsdl:output> <wsdl:fault name="fault"> <wsdlsoap:fault name="fault" use="literal" /> </wsdl:fault> </wsdl:operation> The stub got generated has the following code to add the headers // add the children only if the parameter is not null if (sessionId563!=null){ org.apache.axiom.om.OMElement omElementsessionId563 = toOM(sessionId563, optimizeContent(new javax.xml.namespace.QName("xxxx", "myoperation"))); org.apache.axiom.soap.SOAPHeaderBlock soapHeaderBlocksessionId563 = env.getHeader().addHeaderBlock(omElementsessionId563.getLocalName(), omElementsessionId563.getNamespace()); soapHeaderBlocksessionId563.addChild(omElementsessionId563.getFirstElement ()); } // add the children only if the parameter is not null if (security564!=null){ org.apache.axiom.om.OMElement omElementsecurity564 = toOM(security564, optimizeContent(new javax.xml.namespace.QName("xxxx", "myoperation"))); org.apache.axiom.soap.SOAPHeaderBlock soapHeaderBlocksecurity564 = env.getHeader().addHeaderBlock(omElementsecurity564.getLocalName(), omElementsecurity564.getNamespace()); soapHeaderBlocksecurity564.addChild(omElementsecurity564.getFirstElement()); } // add the children only if the parameter is not null if (source565!=null){ org.apache.axiom.om.OMElement omElementSource565 = toOM(Source565, optimizeContent(new javax.xml.namespace.QName("xxxxx", "myoperation"))); org.apache.axiom.soap.SOAPHeaderBlock soapHeaderBlocksource565 = env.getHeader().addHeaderBlock(omElementSource565.getLocalName(), omElementSource565.getNamespace()); soapHeaderBlockSource565.addChild(omElementSource565.getFirstElement()); } If u look at the bold stuff results in a null pointer, here i will explain how omElementsource565 = <source>31234234213<source> soapHeaderBlocksource565 =<soap/> omElementSource565.getFirstElement() = null; soapHeaderBlockSource565.addChild(omElementSource565.getFirstElement()); throws a null pointer.... Is there something i am doing wrong is this a problem with the code generation? I am using axis2-1.3RC2, namespaces are omitted in the examle Thanks in advance -- Rgds Mehar