[ 
http://issues.apache.org/jira/browse/AXISCPP-333?page=comments#action_12367018 
] 

Adrian Dick commented on AXISCPP-333:
-------------------------------------

I have recently resolved some problems in this area, can you try the latest 
nightly builds to confirm if this is still a problem.

> WSDL2ws doesn't handle complex Array types correctly when nested or when 
> returning as AXIS_OUT_PARAM
> ----------------------------------------------------------------------------------------------------
>
>          Key: AXISCPP-333
>          URL: http://issues.apache.org/jira/browse/AXISCPP-333
>      Project: Axis-C++
>         Type: Bug
>   Components: WSDL processing - RPC, WSDL processing - Doc
>     Versions: current (nightly)
>  Environment: Tested on win32
>     Reporter: Steve Hardy
>  Attachments: test.wsdl
>
> When returning an Array type as an AXIS_OUT_PARAM (a.k.a. when there is more 
> than 1 return value), the wrong cast is used by WSDL2ws to cast to the return 
> type ..
> the following WSDL2ws generated uncompileable client-side code, due to the 
> use of my defined cTypeArrayArray type (which does not exist in cpp 
> namespace) instead of the cTypeArray_Array which WSDL2ws creates.
> The cTypeArray_Array in turn, references "cTypeArray" instead of "cType_Array"
> This problem also arises when there are no nested arrays in use.
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions targetNamespace="http://localhost/axis/test"; 
> xmlns="http://schemas.xmlsoap.org/wsdl/"; 
> xmlns:apachesoap="http://xml.apache.org/xml-soap";
> xmlns:test="http://localhost/axis/test";
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
> 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>
>     <wsdl:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
> targetNamespace="http://localhost/axis/test";>
>       <xs:import namespace = "http://schemas.xmlsoap.org/soap/encoding/"/>
>       <xs:complexType name="hiloType">
>         <xs:sequence>
>           <xs:element name="hi" type="xs:int"/>
>           <xs:element name="lo" type="xs:unsignedInt"/>
>         </xs:sequence>
>       </xs:complexType>
>       <xs:complexType name="cType">
>         <xs:sequence>
>           <xs:element name="a" type="xs:int"/>
>           <xs:element name="b" type="test:hiloType"/>
>         </xs:sequence>
>       </xs:complexType>
>       
>       <xs:complexType name="cTypeArray">
>         <xs:complexContent>
>         <xs:restriction base="soapenc:Array">
>           <xs:attribute ref="soapenc:arrayType" 
> wsdl:arrayType="test:cType[]"/>
>           </xs:restriction>
>         </xs:complexContent>
>       </xs:complexType>
>       
>       <xs:complexType name="cTypeArrayArray">
>         <xs:complexContent>
>           <xs:restriction base="soapenc:Array">
>             <xs:attribute ref="soapenc:arrayType" 
> wsdl:arrayType="test:cTypeArray[]"/>
>           </xs:restriction>
>         </xs:complexContent>
>       </xs:complexType>
>       
>     </wsdl:schema>
>   </wsdl:types>
>   <wsdl:message name="testRequest">
>     <wsdl:part name="a" type="xsd:int"/>
>   </wsdl:message>
>   <wsdl:message name="testResponse">
>     <wsdl:part name="b" type="xsd:int"/>
>     <wsdl:part name="result" type="test:cTypeArrayArray"/>
>   </wsdl:message>
>   <wsdl:portType name="test">
>     <wsdl:operation name="test" parameterOrder="a">
>       <wsdl:input message="test:testRequest" name="testRequest"/>
>       <wsdl:output message="test:testResponse" name="testResponse"/>
>     </wsdl:operation>
>   </wsdl:portType>
>   <wsdl:binding name="testBinding" type="test:test">
>     <wsdlsoap:binding style="rpc" 
> transport="http://schemas.xmlsoap.org/soap/http"/>
>     <wsdl:operation name="test">
>       <wsdl:input name="testRequest">
>         <wsdlsoap:body 
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; 
> namespace="http://localhost/axis/test"; use="encoded"/>
>       </wsdl:input>
>       <wsdl:output name="testResponse">
>         <wsdlsoap:body 
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; 
> namespace="http://localhost/axis/test"; use="encoded"/>
>       </wsdl:output>
>     </wsdl:operation>
>   </wsdl:binding>
>   <wsdl:service name="test">
>     <wsdl:port binding="test:testBinding" name="test">
>       <wsdlsoap:address location="http://localhost/axis/test"/>
>     </wsdl:port>
>   </wsdl:service>
> </wsdl:definitions>

-- 
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