You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by "Mark Whitlock (JIRA)" <ax...@ws.apache.org> on 2005/06/08 17:53:15 UTC
[jira] Created: (AXISCPP-679) Data not passed back from multiple output parameters
Data not passed back from multiple output parameters
----------------------------------------------------
Key: AXISCPP-679
URL: http://issues.apache.org/jira/browse/AXISCPP-679
Project: Axis-C++
Type: Bug
Components: WSDL processing - Doc
Reporter: Mark Whitlock
Priority: Critical
I have a wsdl that has multiple output parameters...
<element name="get">
<complexType>
<sequence>
<element name="out1" type="xsd:string"/>
<element name="out14" type="xsd:integer"/>
<element name="out15" type="xsd:int"/>
<element name="out16" type="xsd:long"/>
<element name="out17" type="xsd:short"/>
<element name="out18" type="xsd:decimal"/>
<element name="out19" type="xsd:float"/>
<element name="out20" type="xsd:double"/>
<element name="out21" type="xsd:boolean"/>
<element name="out22" type="xsd:byte"/>
</sequence>
</complexType>
</element>
</schema>
</wsdl:types>
<wsdl:message name="get0">
<wsdl:part element="impl:get0" name="parameters"/>
</wsdl:message>
<wsdl:message name="get">
<wsdl:part element="impl:get" name="parameters"/>
</wsdl:message>
<wsdl:portType name="MultiOut">
<wsdl:operation name="get">
<wsdl:input message="impl:get0" name="get0"/>
<wsdl:output message="impl:get" name="get"/>
</wsdl:operation>
</wsdl:portType>
The code that WSDL2Ws generates does not work...
void MultiOut::get(xsd__int Value0, AXIS_OUT_PARAM xsd__string* OutValue0, AXIS_OUT_PARAM xsd__integer* OutValue1, AXIS_OUT_PARAM xsd__int* OutValue2, AXIS_OUT_PARAM xsd__long* OutValue3, AXIS_OUT_PARAM xsd__short* OutValue4, AXIS_OUT_PARAM xsd__decimal* OutValue5, AXIS_OUT_PARAM xsd__float* OutValue6, AXIS_OUT_PARAM xsd__double* OutValue7, AXIS_OUT_PARAM xsd__boolean* OutValue8, AXIS_OUT_PARAM xsd__byte* OutValue9)
{
...
OutValue1 = m_pCall->getElementAsInteger("out14", 0);
...
}
because altering OutValue1 will not affect what the application receives since OutValue1 is passed by value and the contents of OutValue1 are not updated. The line should be
*OutValue1 = *(m_pCall->getElementAsInteger("out14", 0));
--
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
[jira] Closed: (AXISCPP-679) Data not passed back from multiple output parameters
Posted by "Mark Whitlock (JIRA)" <ax...@ws.apache.org>.
[ http://issues.apache.org/jira/browse/AXISCPP-679?page=all ]
Mark Whitlock closed AXISCPP-679:
---------------------------------
Resolution: Fixed
This issue is now fixed and tested by the MultiOut unit test
> Data not passed back from multiple output parameters
> ----------------------------------------------------
>
> Key: AXISCPP-679
> URL: http://issues.apache.org/jira/browse/AXISCPP-679
> Project: Axis-C++
> Type: Bug
> Components: WSDL processing - Doc
> Reporter: Mark Whitlock
> Assignee: Mark Whitlock
> Priority: Critical
>
> I have a wsdl that has multiple output parameters...
> <element name="get">
> <complexType>
> <sequence>
> <element name="out1" type="xsd:string"/>
> <element name="out14" type="xsd:integer"/>
> <element name="out15" type="xsd:int"/>
> <element name="out16" type="xsd:long"/>
> <element name="out17" type="xsd:short"/>
> <element name="out18" type="xsd:decimal"/>
> <element name="out19" type="xsd:float"/>
> <element name="out20" type="xsd:double"/>
> <element name="out21" type="xsd:boolean"/>
> <element name="out22" type="xsd:byte"/>
> </sequence>
> </complexType>
> </element>
> </schema>
> </wsdl:types>
> <wsdl:message name="get0">
> <wsdl:part element="impl:get0" name="parameters"/>
> </wsdl:message>
> <wsdl:message name="get">
> <wsdl:part element="impl:get" name="parameters"/>
> </wsdl:message>
> <wsdl:portType name="MultiOut">
> <wsdl:operation name="get">
> <wsdl:input message="impl:get0" name="get0"/>
> <wsdl:output message="impl:get" name="get"/>
> </wsdl:operation>
> </wsdl:portType>
> The code that WSDL2Ws generates does not work...
> void MultiOut::get(xsd__int Value0, AXIS_OUT_PARAM xsd__string* OutValue0, AXIS_OUT_PARAM xsd__integer* OutValue1, AXIS_OUT_PARAM xsd__int* OutValue2, AXIS_OUT_PARAM xsd__long* OutValue3, AXIS_OUT_PARAM xsd__short* OutValue4, AXIS_OUT_PARAM xsd__decimal* OutValue5, AXIS_OUT_PARAM xsd__float* OutValue6, AXIS_OUT_PARAM xsd__double* OutValue7, AXIS_OUT_PARAM xsd__boolean* OutValue8, AXIS_OUT_PARAM xsd__byte* OutValue9)
> {
> ...
> OutValue1 = m_pCall->getElementAsInteger("out14", 0);
> ...
> }
> because altering OutValue1 will not affect what the application receives since OutValue1 is passed by value and the contents of OutValue1 are not updated. The line should be
> *OutValue1 = *(m_pCall->getElementAsInteger("out14", 0));
--
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
[jira] Assigned: (AXISCPP-679) Data not passed back from multiple output parameters
Posted by "Mark Whitlock (JIRA)" <ax...@ws.apache.org>.
[ http://issues.apache.org/jira/browse/AXISCPP-679?page=all ]
Mark Whitlock reassigned AXISCPP-679:
-------------------------------------
Assign To: Mark Whitlock
> Data not passed back from multiple output parameters
> ----------------------------------------------------
>
> Key: AXISCPP-679
> URL: http://issues.apache.org/jira/browse/AXISCPP-679
> Project: Axis-C++
> Type: Bug
> Components: WSDL processing - Doc
> Reporter: Mark Whitlock
> Assignee: Mark Whitlock
> Priority: Critical
>
> I have a wsdl that has multiple output parameters...
> <element name="get">
> <complexType>
> <sequence>
> <element name="out1" type="xsd:string"/>
> <element name="out14" type="xsd:integer"/>
> <element name="out15" type="xsd:int"/>
> <element name="out16" type="xsd:long"/>
> <element name="out17" type="xsd:short"/>
> <element name="out18" type="xsd:decimal"/>
> <element name="out19" type="xsd:float"/>
> <element name="out20" type="xsd:double"/>
> <element name="out21" type="xsd:boolean"/>
> <element name="out22" type="xsd:byte"/>
> </sequence>
> </complexType>
> </element>
> </schema>
> </wsdl:types>
> <wsdl:message name="get0">
> <wsdl:part element="impl:get0" name="parameters"/>
> </wsdl:message>
> <wsdl:message name="get">
> <wsdl:part element="impl:get" name="parameters"/>
> </wsdl:message>
> <wsdl:portType name="MultiOut">
> <wsdl:operation name="get">
> <wsdl:input message="impl:get0" name="get0"/>
> <wsdl:output message="impl:get" name="get"/>
> </wsdl:operation>
> </wsdl:portType>
> The code that WSDL2Ws generates does not work...
> void MultiOut::get(xsd__int Value0, AXIS_OUT_PARAM xsd__string* OutValue0, AXIS_OUT_PARAM xsd__integer* OutValue1, AXIS_OUT_PARAM xsd__int* OutValue2, AXIS_OUT_PARAM xsd__long* OutValue3, AXIS_OUT_PARAM xsd__short* OutValue4, AXIS_OUT_PARAM xsd__decimal* OutValue5, AXIS_OUT_PARAM xsd__float* OutValue6, AXIS_OUT_PARAM xsd__double* OutValue7, AXIS_OUT_PARAM xsd__boolean* OutValue8, AXIS_OUT_PARAM xsd__byte* OutValue9)
> {
> ...
> OutValue1 = m_pCall->getElementAsInteger("out14", 0);
> ...
> }
> because altering OutValue1 will not affect what the application receives since OutValue1 is passed by value and the contents of OutValue1 are not updated. The line should be
> *OutValue1 = *(m_pCall->getElementAsInteger("out14", 0));
--
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