I think there's a bug in wsdl2java where in certain cases, it fails to generate the parameters correctly in the Java method signature. For now, you should manually check and update the method signature to match your wsdl definition, especially when you know it has parameters. At some point, you'll do this automatically since you'll be putting code into your method.
-----Original Message----- From: Grady, Brendan (Mission Systems) [mailto:[EMAIL PROTECTED] Sent: Friday, December 15, 2006 10:22 AM To: [email protected] Subject: RE: Simple wsdl2java Question 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]
