2 Replies Latest reply on Jan 9, 2006 9:43 AM by John Reynolds

    Illegal argument passed to ParameterDesc.setJavaType.  The j

    Kerry Bellerose Newbie

      Hello,

      I've just started using JBoss 4.0 and Axis 1.1 to create Web Services
      from an existing wsdl file.

      I've been able to get a couple of simple "Hello World" style services
      up and running, so I know that JBoss is configured and running
      correctly.

      When I try to generate an application from the start point of the wsdl
      at the bottom of this message, I get the following exception when I
      view my services:

      Exception - java.lang.IllegalArgumentException: Illegal argument passed to ParameterDesc.setJavaType. The java type double does not match the mode inout

      I can reproduce this in any wsdl generated application by including
      an operation that specifies both input and output parameters, as in
      the following PortType configuration:

      <wsdl:portType name="MathService">
      <wsdl:operation name="addRequest">
      <wsdl:input message="tns:addRequest" name="addRequest"/>
      <wsdl:output message="tns:addResponse" name="addResponse"/>
      </wsdl:operation>
      </wsdl:portType>

      This is true whether the parameters are complex or simple datatypes.

      I've spent several days checking and rechecking the net to find
      clues as to why this might be happening, but I've reached my
      ropes end.

      Can any one offer any suggestions or pointers?

      Thanks!

      Kerry Bellerose
      kerry.bellerose@nexus-dk.com

      ---- Complete sample wsdl file -----


      <?xml version="1.0" encoding="UTF-8"?>
      <wsdl:definitions targetNamespace="http://MathTest"
      xmlns="http://schemas.xmlsoap.org/wsdl/"
      xmlns:tns="http://MathTest"
      xmlns:type="http://MathTest"
      xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
      xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema">

      <wsdl:types>
      <xsd:schema targetNamespace="http://MathTest" xmlns:tns="http://MathTest">
      <xsd:complexType name="AddType">
      <xsd:sequence>
      <xsd:element name="d1" type="xsd:double"/>
      </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="AddResponseType">
      <xsd:sequence>
      <xsd:element name="addReturn" type="xsd:double"/>
      </xsd:sequence>
      </xsd:complexType>

      <xsd:element name="addRequest" type="tns:AddType"/>
      <xsd:element name="addResponse" type="tns:AddResponseType"/>
      </xsd:schema>
      </wsdl:types>

      <wsdl:message name="addResponse">
      <wsdl:part element="type:addResponse" name="parameters"/>
      </wsdl:message>
      <wsdl:message name="addRequest">
      <wsdl:part element="type:addRequest" name="parameters"/>
      </wsdl:message>

      <wsdl:portType name="MathService">
      <wsdl:operation name="addRequest">
      <wsdl:input message="tns:addRequest" name="addRequest"/>
      <wsdl:output message="tns:addResponse" name="addResponse"/>
      </wsdl:operation>
      </wsdl:portType>
      <wsdl:binding name="MathServiceSoapBinding" type="tns:MathService">
      <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
      <wsdl:operation name="addRequest">
      <wsdlsoap:operation soapAction=""/>
      <wsdl:input name="addRequest">
      <wsdlsoap:body namespace="http://localhost:8080/ws4ee/services/MathService" use="literal"/>
      </wsdl:input>
      <wsdl:output name="addResponse">
      <wsdlsoap:body namespace="http://localhost:8080/ws4ee/services/MathService" use="literal"/>
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
      <wsdl:service name="MathService">
      <wsdl:port binding="tns:MathServiceSoapBinding" name="MathService">
      <wsdlsoap:address location="http://localhost:8080/ws4ee/services/MathService"/>
      </wsdl:port>
      </wsdl:service>
      </wsdl:definitions>