WSDL2Ws fails when message has no parts
---------------------------------------

         Key: AXISCPP-672
         URL: http://issues.apache.org/jira/browse/AXISCPP-672
     Project: Axis-C++
        Type: Bug
  Components: WSDL processing - Doc  
    Reporter: Mark Whitlock


WSDL2Ws fails with this exception...
java -jar C:\fvtests\obj\classes\wsdl2ws.jar -lc++ -sclient 
SpServerWS_doc_lit.wsdl
06-Jun-2005 13:46:47 org.apache.axis.utils.JavaUtils isAttachmentSupported
WARNING: Unable to find required classes (javax.activation.DataHandler and javax
.mail.internet.MimeMultipart). Attachment support is disabled.
java.util.NoSuchElementException
        at java.util.HashMap$HashIterator.nextEntry(HashMap.java:933)
        at java.util.HashMap$ValueIterator.next(HashMap.java:960)
        at 
org.apache.axis.wsdl.wsdl2ws.WSDL2Ws.addDocumentStyleInputMessageToMethodInfo(Unknown
 Source)
        at org.apache.axis.wsdl.wsdl2ws.WSDL2Ws.setMethodInfo(Unknown Source)
        at org.apache.axis.wsdl.wsdl2ws.WSDL2Ws.getServiceInfo(Unknown Source)
        at org.apache.axis.wsdl.wsdl2ws.WSDL2Ws.generateWrappers(Unknown Source)
        at org.apache.axis.wsdl.wsdl2ws.WSDL2Ws.main(Unknown Source)

Code generation failed. Please see errors above.

with this WSDL...

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="urn:SpServerWS" 
xmlns:apachesoap="http://xml.apache.org/xml-soap"; xmlns:impl="urn:SpServerWS" 
xmlns:intf="urn:SpServerWS" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
<!--WSDL created by Apache Axis version: 1.2RC2
Built on Nov 16, 2004 (12:19:44 EST)-->
 <wsdl:types>
  <schema elementFormDefault="qualified" targetNamespace="urn:SpServerWS" 
xmlns="http://www.w3.org/2001/XMLSchema";>
   <element name="getIntReturn" type="xsd:int"/>
   <element name="getStringReturn" type="xsd:string"/>
   <complexType name="SubBean">
    <sequence>
     <element name="x" type="xsd:int"/>
    </sequence>
   </complexType>
   <complexType name="TestBean">
    <sequence>
     <element name="bean" nillable="true" type="impl:SubBean"/>
     <element name="i" type="xsd:int"/>
     <element name="s" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <element name="getTestBeanReturn" type="impl:TestBean"/>
   <complexType name="ArrayOfTestBean">
    <sequence>
     <element maxOccurs="unbounded" minOccurs="0" name="item" 
type="impl:TestBean"/>
    </sequence>
   </complexType>
   <element name="getTestBeansReturn" type="impl:ArrayOfTestBean"/>
   <complexType name="SubBean2">
    <sequence>
     <element name="s2" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <complexType name="TestBean2">
    <sequence>
     <element name="bean" nillable="true" type="impl:SubBean2"/>
     <element name="s" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <element name="getTestBean2Return" type="impl:TestBean2"/>
   <complexType name="ArrayOfTestBean2">
    <sequence>
     <element maxOccurs="unbounded" minOccurs="0" name="item" 
type="impl:TestBean2"/>
    </sequence>
   </complexType>
   <element name="getTestBeans2Return" type="impl:ArrayOfTestBean2"/>
   <element name="getIntsReturn" type="xsd:int"/>
   <element name="getStringsReturn" type="xsd:string"/>
  </schema>
 </wsdl:types>

   <wsdl:message name="getIntResponse">

      <wsdl:part element="impl:getIntReturn" name="getIntReturn"/>

   </wsdl:message>

   <wsdl:message name="getStringsResponse">

      <wsdl:part element="impl:getStringsReturn" name="getStringsReturn"/>

   </wsdl:message>

   <wsdl:message name="getTestBean2Request">

   </wsdl:message>

   <wsdl:message name="getStringResponse">

      <wsdl:part element="impl:getStringReturn" name="getStringReturn"/>

   </wsdl:message>

   <wsdl:message name="getStringRequest">

   </wsdl:message>

   <wsdl:message name="getStringsRequest">

   </wsdl:message>

   <wsdl:message name="getTestBean2Response">

      <wsdl:part element="impl:getTestBean2Return" name="getTestBean2Return"/>

   </wsdl:message>

   <wsdl:message name="getTestBeansResponse">

      <wsdl:part element="impl:getTestBeansReturn" name="getTestBeansReturn"/>

   </wsdl:message>

   <wsdl:message name="getTestBeanResponse">

      <wsdl:part element="impl:getTestBeanReturn" name="getTestBeanReturn"/>

   </wsdl:message>

   <wsdl:message name="getIntsRequest">

   </wsdl:message>

   <wsdl:message name="getTestBeanRequest">

   </wsdl:message>

   <wsdl:message name="getTestBeans2Response">

      <wsdl:part element="impl:getTestBeans2Return" name="getTestBeans2Return"/>

   </wsdl:message>

   <wsdl:message name="getTestBeansRequest">

   </wsdl:message>

   <wsdl:message name="getTestBeans2Request">

   </wsdl:message>

   <wsdl:message name="getIntsResponse">

      <wsdl:part element="impl:getIntsReturn" name="getIntsReturn"/>

   </wsdl:message>

   <wsdl:message name="getIntRequest">

   </wsdl:message>

   <wsdl:portType name="SpServerWS">

      <wsdl:operation name="getInt">

         <wsdl:input message="impl:getIntRequest" name="getIntRequest"/>

         <wsdl:output message="impl:getIntResponse" name="getIntResponse"/>

      </wsdl:operation>

      <wsdl:operation name="getString">

         <wsdl:input message="impl:getStringRequest" name="getStringRequest"/>

         <wsdl:output message="impl:getStringResponse" 
name="getStringResponse"/>

      </wsdl:operation>

      <wsdl:operation name="getTestBean">

         <wsdl:input message="impl:getTestBeanRequest" 
name="getTestBeanRequest"/>

         <wsdl:output message="impl:getTestBeanResponse" 
name="getTestBeanResponse"/>

      </wsdl:operation>

      <wsdl:operation name="getTestBeans">

         <wsdl:input message="impl:getTestBeansRequest" 
name="getTestBeansRequest"/>

         <wsdl:output message="impl:getTestBeansResponse" 
name="getTestBeansResponse"/>

      </wsdl:operation>

      <wsdl:operation name="getTestBean2">

         <wsdl:input message="impl:getTestBean2Request" 
name="getTestBean2Request"/>

         <wsdl:output message="impl:getTestBean2Response" 
name="getTestBean2Response"/>

      </wsdl:operation>

      <wsdl:operation name="getTestBeans2">

         <wsdl:input message="impl:getTestBeans2Request" 
name="getTestBeans2Request"/>

         <wsdl:output message="impl:getTestBeans2Response" 
name="getTestBeans2Response"/>

      </wsdl:operation>

      <wsdl:operation name="getInts">

         <wsdl:input message="impl:getIntsRequest" name="getIntsRequest"/>

         <wsdl:output message="impl:getIntsResponse" name="getIntsResponse"/>

      </wsdl:operation>

      <wsdl:operation name="getStrings">

         <wsdl:input message="impl:getStringsRequest" name="getStringsRequest"/>

         <wsdl:output message="impl:getStringsResponse" 
name="getStringsResponse"/>

      </wsdl:operation>

   </wsdl:portType>

   <wsdl:binding name="SpServerWSSoapBinding" type="impl:SpServerWS">

      <wsdlsoap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/>

      <wsdl:operation name="getInt">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getIntRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getIntResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getString">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getStringRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getStringResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getTestBean">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getTestBeanRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getTestBeanResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getTestBeans">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getTestBeansRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getTestBeansResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getTestBean2">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getTestBean2Request">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getTestBean2Response">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getTestBeans2">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getTestBeans2Request">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getTestBeans2Response">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getInts">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getIntsRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getIntsResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getStrings">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getStringsRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getStringsResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

   </wsdl:binding>

   <wsdl:service name="SpServerWSService">

      <wsdl:port binding="impl:SpServerWSSoapBinding" name="SpServerWS">

         <wsdlsoap:address 
location="http://flak:8080/axis/services/SpServerWS"/>

      </wsdl:port>

   </wsdl:service>

</wsdl:definitions>

I think this is because the input or output message has no parts.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to