You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Mehar <me...@gmail.com> on 2007/08/01 08:19:21 UTC

Problem with stub generated

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

Re: Problem with stub generated

Posted by Amila Suriarachchi <am...@gmail.com>.
fixed the issue in both trunk and branch. please have a look at with a
nighly build.

Amila.

On 8/1/07, Amila Suriarachchi <am...@gmail.com> wrote:
>
> thanks, I could recrate the problem and looking into it. please put a
> jira.
>
> On 8/1/07, Mehar <meharsvln@gmail.com > wrote:
> >
> > Hai Amila
> >
> > I cannot give u my wsdl, did u try with a soap header with a single
> > element??
> >
> > Code works fine with soap headers with multiple elements like
> > <level1>
> >              <level2/>
> > </level1>
> >
> > My suspect is soapHeaderBlockSource565.addChild(
> > omElementSource565.getFirstElement ());
> >
> > if the omElementSource565 = <source>31231312321</source>
> >
> > Are u sure like omElementSource565.getFirstElement () returns this
> > 31231312321??
> >
> > I am not sure about this anyways i dont know much about AXIOM
> >
> > Thanks in advance
> > Mehar
> >
> > On 8/1/07, Amila Suriarachchi < amilasuriarachchi@gmail.com> wrote:
> > >
> > > I wrote a sample service which uses the Headers and it worked fine.
> > >
> > > Can you please send your wsdl and Client?
> > >
> > > Amila.
> > >
> > > On 8/1/07, Mehar < meharsvln@gmail.com> wrote:
> > > >
> > > > Hai All,
> > > >
> > > > I have a wsdl with a singele 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
> > > >
> > >
> > >
> > >
> > > --
> > > Amila Suriarachchi,
> > > WSO2 Inc.
> >
> >
> >
> >
> > --
> > Rgds
> > Mehar
>
>
>
>
> --
> Amila Suriarachchi,
> WSO2 Inc.




-- 
Amila Suriarachchi,
WSO2 Inc.

Re: Problem with stub generated

Posted by Amila Suriarachchi <am...@gmail.com>.
thanks, I could recrate the problem and looking into it. please put a jira.

On 8/1/07, Mehar <me...@gmail.com> wrote:
>
> Hai Amila
>
> I cannot give u my wsdl, did u try with a soap header with a single
> element??
>
> Code works fine with soap headers with multiple elements like
> <level1>
>              <level2/>
> </level1>
>
> My suspect is soapHeaderBlockSource565.addChild(
> omElementSource565.getFirstElement ());
>
> if the omElementSource565 = <source>31231312321</source>
>
> Are u sure like omElementSource565.getFirstElement () returns this
> 31231312321??
>
> I am not sure about this anyways i dont know much about AXIOM
>
> Thanks in advance
> Mehar
>
> On 8/1/07, Amila Suriarachchi <am...@gmail.com> wrote:
> >
> > I wrote a sample service which uses the Headers and it worked fine.
> >
> > Can you please send your wsdl and Client?
> >
> > Amila.
> >
> > On 8/1/07, Mehar < meharsvln@gmail.com> wrote:
> > >
> > > Hai All,
> > >
> > > I have a wsdl with a singele 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
> > >
> >
> >
> >
> > --
> > Amila Suriarachchi,
> > WSO2 Inc.
>
>
>
>
> --
> Rgds
> Mehar




-- 
Amila Suriarachchi,
WSO2 Inc.

Re: Problem with stub generated

Posted by Mehar <me...@gmail.com>.
Hai Amila

I cannot give u my wsdl, did u try with a soap header with a single
element??

Code works fine with soap headers with multiple elements like
<level1>
             <level2/>
</level1>

My suspect is soapHeaderBlockSource565.addChild(
omElementSource565.getFirstElement ());

if the omElementSource565 = <source>31231312321</source>

Are u sure like omElementSource565.getFirstElement () returns this
31231312321??

I am not sure about this anyways i dont know much about AXIOM

Thanks in advance
Mehar

On 8/1/07, Amila Suriarachchi <am...@gmail.com> wrote:
>
> I wrote a sample service which uses the Headers and it worked fine.
>
> Can you please send your wsdl and Client?
>
> Amila.
>
> On 8/1/07, Mehar < meharsvln@gmail.com> wrote:
> >
> > Hai All,
> >
> > I have a wsdl with a singele 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
> >
>
>
>
> --
> Amila Suriarachchi,
> WSO2 Inc.




-- 
Rgds
Mehar

Re: Problem with stub generated

Posted by Amila Suriarachchi <am...@gmail.com>.
I wrote a sample service which uses the Headers and it worked fine.

Can you please send your wsdl and Client?

Amila.

On 8/1/07, Mehar <me...@gmail.com> wrote:
>
> Hai All,
>
> I have a wsdl with a singele 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
>



-- 
Amila Suriarachchi,
WSO2 Inc.