0 Replies Latest reply on May 8, 2006 8:46 AM by Boerre Brox

    Something is wrong with my wsdl

    Boerre Brox Newbie

      Hi I'm new to webservices, and have a issue I can't seem to figure out.

      I've followed some tutorials, and made a helloworld example implementation which was written for jboss ws4ee, using RPC/literal.
      It worked fine when I tested it, and all seemed nice..

      Then I wanted to test my app on a mobile device, and that ment I had to rewrite the wsdl to document/literal.
      The application deploys fine, and comes up in the list of services, however I get errors when trying to run a simple client, or run stub generation from Suns wireless toolkit.

      The errors I get are as follows:

      Client:

      Deserializing parameter 'getHelloWorld': could not find deserializer for type {http://www.w3.org/2001/XMLSchema}reqElement


      And from suns wireless toolkit:
      error: modeler error: invalid entity name: "resElement" (in namespace: "http://www.w3.org/2001/XMLSchema")


      I've been at this for three days now, trying to figure out whats wrong, but cant seem to find anything that works.. Any help at all would be greatly appreciated! :)

      Here's my WSDL:
      <definitions
       name="HelloWorld"
       targetNamespace="http://DefaultNamespace"
       xmlns="http://schemas.xmlsoap.org/wsdl/"
       xmlns:xsd="http://www.w3.org/2001/XMLSchema"
       xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
       xmlns:impl="http://DefaultNamespace">
      
      <types>
       <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
       <xsd:element name="reqElement" type="xsd:string" />
       <xsd:element name="resElement" type="xsd:string" />
       </xsd:schema>
      </types>
      
      
      <message name="getHelloWorldRequest">
       <part name="req" type="xsd:reqElement" />
      </message>
      
      <message name="getHelloWorldResponse">
       <part name="res" type="xsd:resElement" />
      </message>
      
      <portType name="HelloWorld">
       <operation name="getHelloWorld" parameterOrder="req">
       <input name="getHelloWorldRequest" message="impl:getHelloWorldRequest"/>
       <output name="getHelloWorldResponse" message="impl:getHelloWorldResponse"/>
       </operation>
      </portType>
      
      <binding name="HelloWorldSoapBinding" type="impl:HelloWorld">
       <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
       <operation name="getHelloWorld">
       <soap:operation soapAction="" style="document"/>
       <input name="getHelloWorldRequest">
       <soap:body use="literal"/>
       </input>
       <output name="getHelloWorldResponse">
       <soap:body use="literal" />
       </output>
       </operation>
      </binding>
      
      <service name="HelloWorldService">
       <port name="HelloWorld" binding="impl:HelloWorldSoapBinding">
       <soap:address location="http://10.0.102.112:8080/ws4ee/services/HelloWorld"/>
       </port>
      </service>
      
      
      </definitions>
      



      My client:
      import javax.xml.namespace.QName;
      
      import org.apache.axis.client.Call;
      import org.apache.axis.client.Service;
      
      public class TestClient {
      
       /**
       * @param args
       */
       public static void main(String[] args) {
       try {
       System.out.println("Here we go...");
      
       String endpoint = "http://10.0.102.112:8080/testing123/blah/iruleimmensly";
      
       Service service = new Service();
       Call call = (Call) service.createCall();
      
       call.setTargetEndpointAddress(new java.net.URL(endpoint));
       call.setOperationName(new QName("http://what.com", "getHelloWorld"));
      
       for(int i=1; i<=10; i++) {
       String ret = (String) call.invoke(new Object[] { "TYPO! " + i } );
       System.out.println("Sent TYPO!" + i + ", got '" + ret + "'");
       }
      
       System.out.println("End of code...");
       }
       catch(Exception e) {
       System.err.println(e.toString());
       }
       }
      
      }
      
      


      If theres any more code I should supply, please tell me.