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]

Reply via email to