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