Hi,

I think the issue is that wsdl2java reads the <wsdl:part/> element as the 
"root" or "wrapper" element of the request, in accordance with the 
doc-literal style. It therefore expects that this element will have a 
number of child elements as the parameters for the operation. The tool 
currently does this by looking for elements under the the following path:

/xsd:complexType/xsd:sequence/xsd:element

not by looking for the 'type' attribute, finding the type definition, and 
then looking for the child elements. If you change your XML to:

<xsd:element name="Update">
  <xsd:complexType name="UpdateType">
    <xsd:sequence>
      <xsd:element name="arg" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>


It should work. If you don't mind, open up a JIRA item (assigned to Andrew 
 ;) ) about this and perhaps he can get it working the way you have it for 
2.2.

Dan


"Grady, Brendan \(Mission Systems\)" <[EMAIL PROTECTED]> wrote on 
12/15/2006 01:22:04 PM:

> Thanks José,
> By adding:
> 
>       <xsd:schema elementFormDefault="qualified" 
targetNamespace="http://ws.
> apache.org/muse/test/wsrf">
>          <xsd:element name="Update" type="tns:UpdateType"/>
> 
>          <xsd:complexType name="UpdateType">
>            <xsd:sequence>
>                <xsd:element name="arg" type="xsd:string"/>
>            </xsd:sequence>
>          </xsd:complexType>
>       </xsd:schema>
> 
> to the types, and updating the input message to:
> 
>    <wsdl:message name="UpdateRequestMessage">
>       <wsdl:part name="UpdateRequest" 
>             element="tns:Update">
>       </wsdl:part>
>    </wsdl:message>
> 
> I was able to get wsdl2java to do its magic. 
> 
> A new question (leading me to believe something in the wsdl is still not 
quite
> right ) is that the autogenerated signature looks like:
>    public void update() throws Exception 
> 
> Any ideas why the String parameter is absent from the signature? 
Attached is 
> the updated wsdl.
> 
> Thanks,
> Brendan
> 
> 
> -----Original Message-----
> From: José Antonio Sánchez [mailto:[EMAIL PROTECTED] 
> Sent: Friday, December 15, 2006 12:07 PM
> To: [email protected]
> Subject: Re: Simple wsdl2java Question
> 
> Wsdl2Java seems to differ in the way input and output parameters are 
managed. 
> In my experience I've found that setting
> 
>  <wsdl:message name="UpdateResponseMessage">
>   <wsdl:part name="Void"
>         type="xsd:anyType">
>   </wsdl:part>
>  </wsdl:message>
> 
> is ok, but the same
> 
> <wsdl:message name="UpdateRequestMessage">
>   <wsdl:part name="UpdateRequest"
>         type="xsd:anyType">
>   </wsdl:part>
>  </wsdl:message>
> 
> is not. So try setting the following:
> 
> <element name="Update" type="tns:UpdateType">
> 
> <complexType name="UpdateType>
>   <sequence>
>    <element name="arg" type="xsd:string">
>   </sequence>
> </complexType>
> 
> <wsdl:message name="UpdateRequestMessage">
>   <wsdl:part name="UpdateRequest"
>         element="tns:Update">
>   </wsdl:part>
>  </wsdl:message>
> 
> I have not checked the above code so I don't know if it's syntactically 
right,
> but it should give you an idea of what I'm referring.
> 
> On 12/15/06, Grady, Brendan (Mission Systems) <[EMAIL PROTECTED]> 
wrote:
> >
> >
> > Hello,
> >
> > I am encountering what I expect to be a simple error, but my lack of 
> > experience with WSDL is holding me back.
> >
> > Basically, I am trying to expose an asynchronous "UpdateRequest" 
> > operation on the wsn-producer tutorial that takes a String as a 
> > parameter and returns void.  i.e. In MyCapability.java, I want to 
> > implement a method with the following signature:  public void 
> > UpdateRequest(String ...)
> >
> > What I have added to the sample wsn-producer.wsdl (attached) thus far:
> >
> > <!-- Block 1 -->
> >  <wsdl:message name="UpdateRequestMessage">
> >   <wsdl:part name="UpdateRequest"
> >         type="xsd:string">
> >   </wsdl:part>
> >  </wsdl:message>
> >
> >  <wsdl:message name="UpdateResponseMessage">
> >   <wsdl:part name="Void"
> >         type="xsd:anyType">
> >   </wsdl:part>
> >  </wsdl:message>
> > <!-- End Block 1 -->
> >
> > <!-- Block 2 -->
> > <wsdl:portType name="WsResourcePortType"
> > .....
> >   <wsdl:operation name="UpdateRequest">
> >    <wsdl:input
> > wsa:Action="http://ws.apache.org/muse/test/wsrf";
> >             name="UpdateRequestMessage"
> > message="tns:UpdateRequestMessage" />
> >    <wsdl:output
> > wsa:Action="http://ws.apache.org/muse/test/wsrf";
> >             name="UpdateResponseMessage"
> > message="tns:UpdateResponseMessage" />
> >   </wsdl:operation>
> > .....
> > </wsdl:portType>
> > <!-- End Block 2 -->
> >
> > <!-- Block 3 -->
> > <wsdl:binding name="WsResourceBinding"
> > .....
> >   <wsdl:operation name="UpdateRequest">
> >    <wsdl-soap:operation soapAction="UpdateRequest" />
> >
> >    <wsdl:input name="UpdateRequestMessage">
> >        <wsdl-soap:body use="encoded"
> > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
> > />
> >    </wsdl:input>
> >
> >    <wsdl:output name="UpdateResponseMessage">
> >        <wsdl-soap:body use="encoded"
> > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
> > />
> >    </wsdl:output>
> >   </wsdl:operation>
> > ....
> > </wsdl:binding>
> > <!-- End Block 3 -->
> >
> >
> > The command that I am running is:  wsdl2java -wsdl 
> > .\wsdl\wsn-producer.wsdl -verbose (called from the base of my project 
> > directory with subdirectory wsdl which contains the sample wsdl and 
> > all of the imported wsdl's and
> > xsd's)
> >
> > The error that I am receiving is:
> >
> > C:\Documents and
> > Settings\gradybr\Desktop\ExposedUpdate>wsdl2java -wsdl 
> > .\wsdl\wsn-producer.wsdl -verbose
> >
> > SEVERE: [ID = 'CodeGenFailed'] Code generation failed, see the 
> > exception information below.
> >
> > An exception was caught: [ID = 'NullTypeQName'] The QName describing 
> > the type declaration is null.
> >
> > The exception generated the following stacktrace:
> >
> > java.lang.NullPointerException: [ID = 'NullTypeQName'] The QName 
> > describing thetype declaration is null.
> >         at
> > 
org.apache.muse.ws.wsdl.WsdlUtils.getTypeDeclaration(WsdlUtils.java:663)
> >         at
> > org.apache.muse.tools.inspector.ResourceInspector.
> createJavaMethod(ResourceInspector.java:329)
> >         at
> > org.apache.muse.tools.inspector.ResourceInspector.
> getOperations(ResourceInspector.java:532)
> >         at
> > 
org.apache.muse.tools.inspector.ResourceInspector.run(ResourceInspector.java:849)
> >         at
> > org.apache.muse.tools.generator.analyzer.SimpleAnalyzer.
> inspect(SimpleAnalyzer.java:367)
> >         at
> > org.apache.muse.tools.generator.analyzer.SimpleAnalyzer.
> analyze(SimpleAnalyzer.java:313)
> >         at
> > org.apache.muse.tools.generator.Wsdl2Java.run(Wsdl2Java.java:142)
> >         at
> > org.apache.muse.tools.generator.Wsdl2Java.main(Wsdl2Java.java:259)
> >
> >
> > I am new to Muse and Web Services in general.  I have followed the 
> > tutorial and have the wsn-producer (beginning with the WSDL) example 
> > up and running correctly.
> >
> > Thanks for any help,
> > Brendan Grady
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> 
> 
> --
> Saludos.
> José Antonio Sánchez
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to