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]