Details
Description
I found that in axis-c-1.6beta, you seems have tried to fix some problems similar to axiscpp-931, the solution is to split localpart of returnParamName before writing it in generated wrapper class.
I think the necessary code fix which we need to do are all inside the method writeMethodInWrapper, which belongs to WSDL2WS's WrapWriter class(src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/WrapWriter.jaava).
i.e.
When the return type is simpletype or array, you've added the below split processing instead of write returnParamName directly
----------------------------------
+ returnParamName.substring(returnParamName.lastIndexOf(">")+1)
----------------------------------
That's OK, no problem.
But there're still some case being ignored by you, I think it's still a bug:
When the return type is complex array, you have not added the split processing before writing.
ie. I used a sample wsdl which containing the bllow piece(which will generate a complex array):
----------------------------------
<xs:element name="GetTestResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Test" type="mb:TestInformation"/>
<xs:element minOccurs="0" maxOccurs="1" name="Context" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
------------------------------------
By axis-c-1.6beta, the generated code is wrong:
the generated element name in code and run-time server response to client is like : ">GetTestResponse>Test", which is not correct according to my sample wsdl.
My fix code looks like the below(in the method writeMethodInWrapper of WrapWriter class):
---------(...when it's complex array ...)----------------------
writer.write(
"\tpIWSSZ->addOutputCmplxArrayParam((Axis_Array*)(&out"
+ i
+ "),"
+ "(void*) Axis_Serialize_"
+ containedType
+ ", (void*) Axis_Delete_"
+ containedType
+ ", (void*) Axis_GetSize_"
+ containedType
+ ", \""
//<mxiong debug 2006/6/15
// + returnParamName
+ returnParamName.substring(returnParamName.lastIndexOf(">")+1)
//>mxiong debug 2006/6/15
+ "\", Axis_URI_"
+ containedType
+ ");\n");
-
---------------------------------
So would you like to check it and adopt my solution for this case?