1 Reply Latest reply on Sep 8, 2006 4:49 PM by doug.palmer

    javaType cannot be null?

    doug.palmer

      I have a document style web service with a problem. I'm obviously doing something wrong but I can't figure out what is wrong. Whenever the service is invoked I get a org.jboss.ws.WSException stating "javaType cannot be null". Why does this happen?

      The service implements this interface:

      package decs2.pi;
      
      public interface ProcessInitiator extends java.rmi.Remote
      {
       public javax.xml.soap.SOAPElement invoke(javax.xml.soap.SOAPElement msg) throws java.rmi.RemoteException;
      }


      The wsdl description of the service is:
      <definitions name='ProcessInitiatorService' targetNamespace='http://decs2/jaws' xmlns='http://schemas.xmlsoap.org/wsdl/' xmlns:decs2='http://decs2/jaws' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' xmlns:typeNS='http://decs2/jaws/types'>
       <types>
       <schema targetNamespace='http://decs2/jaws/types' xmlns='http://www.w3.org/2001/XMLSchema'>
       <element name='subtractProcessOp' type='typeNS:subtractProcessOpType'/>
       <complexType name='subtractProcessOpType'>
       <sequence>
       <element name='x' type='int'></element>
       <element name='y' type='int'></element>
       </sequence>
       </complexType>
       <element name='subtractProcessOpResponse' type='typeNS:subtractProcessOpResponseType'/>
       <complexType name='subtractProcessOpResponseType'>
       <sequence>
       <element name='result' type='int'></element>
       </sequence>
       </complexType>
       </schema>
       </types>
       <message name='INPUT'>
       <part element='typeNS:subtractProcessOp' name='parameters'/>
       </message>
       <message name='OUTPUT'>
       <part element='typeNS:subtractProcessOpResponse' name='result'/>
       </message>
       <portType name='ProcessInitiator'>
       <operation name='subtractProcessOp'>
       <input message='decs2:INPUT'/>
       <output message='decs2:OUTPUT'/>
       </operation>
       </portType>
       <binding name='ProcessInitiatorBinding' type='decs2:ProcessInitiator'>
       <soap:binding style='document' transport='http://schemas.xmlsoap.org/soap/http'/>
       <operation name='subtractProcessOp'>
       <soap:operation soapAction=''/>
       <input>
       <soap:body use='literal'/>
       </input>
       <output>
       <soap:body use='literal'/>
       </output>
       </operation>
       </binding>
       <service name='ProcessInitiatorService'>
       <port binding='decs2:ProcessInitiatorBinding' name='ProcessInitiatorPort'>
       <soap:address location='REPLACE_WITH_ACTUAL_URL'/>
       </port>
       </service>
      </definitions>


      And the jaxrpc-mapping.xml is:
      <java-wsdl-mapping version='1.1' xmlns='http://java.sun.com/xml/ns/j2ee' xmlns:decs2='http://decs2/jaws'>
       <package-mapping>
       <package-type>decs2</package-type>
       <namespaceURI>http://decs2/jaws/types</namespaceURI>
       </package-mapping>
      
       <java-xml-type-mapping>
       <java-type>javax.xml.soap.SOAPElement</java-type>
       <root-type-qname xmlns:typeNS='http://decs2/jaws/types'>typeNS:subtractProcessOpType</root-type-qname>
       <qname-scope>complexType</qname-scope>
       </java-xml-type-mapping>
      
       <java-xml-type-mapping>
       <java-type>javax.xml.soap.SOAPElement</java-type>
       <root-type-qname xmlns:typeNS='http://decs2/jaws/types'>typeNS:subtractProcessOpResponseType</root-type-qname>
       <qname-scope>complexType</qname-scope>
       </java-xml-type-mapping>
      
       <service-interface-mapping>
       <service-interface>decs2.ProcessInitiatorService</service-interface>
       <wsdl-service-name>decs2:ProcessInitiatorService</wsdl-service-name>
       <port-mapping>
       <port-name>ProcessInitiatorPort</port-name>
       <java-port-name>ProcessInitiatorPort</java-port-name>
       </port-mapping>
       </service-interface-mapping>
      
       <service-endpoint-interface-mapping>
       <service-endpoint-interface>decs2.pi.ProcessInitiator</service-endpoint-interface>
       <wsdl-port-type>decs2:ProcessInitiator</wsdl-port-type>
       <wsdl-binding>decs2:ProcessInitiatorBinding</wsdl-binding>
       <service-endpoint-method-mapping>
       <java-method-name>invoke</java-method-name>
       <wsdl-operation>subtractProcessOp</wsdl-operation>
       <wrapped-element/>
       <method-param-parts-mapping>
       <param-position>0</param-position>
       <param-type>javax.xml.soap.SOAPElement</param-type>
       <wsdl-message-mapping>
       <wsdl-message>decs2:INPUT</wsdl-message>
       <wsdl-message-part-name>parameters</wsdl-message-part-name>
       <parameter-mode>IN</parameter-mode>
       </wsdl-message-mapping>
       </method-param-parts-mapping>
       <wsdl-return-value-mapping>
       <method-return-value>javax.xml.soap.SOAPElement</method-return-value>
       <wsdl-message>decs2:OUTPUT</wsdl-message>
       <wsdl-message-part-name>result</wsdl-message-part-name>
       </wsdl-return-value-mapping>
       </service-endpoint-method-mapping>
       </service-endpoint-interface-mapping>
      </java-wsdl-mapping>


      Any ideas?
      Regards
      Doug