[ http://issues.apache.org/jira/browse/AXISCPP-1000?page=comments#action_12437044 ] nadir amra commented on AXISCPP-1000: -------------------------------------
I can fix this but I guess I need some feedback from the experts....AXIS 2 folks and others. Please comment. I know you are working hard on AXIS 2 but AXIS is still important. > Axis C++ 1.6 beta can't handle array return type correctly? > ----------------------------------------------------------- > > Key: AXISCPP-1000 > URL: http://issues.apache.org/jira/browse/AXISCPP-1000 > Project: Axis-C++ > Issue Type: Bug > Components: Client - Stub > Affects Versions: 1.6 Final > Environment: Windows 2000 professional. > VC 6.0 > Java Webservice server. > Reporter: ivan wang > Priority: Critical > > Dears: > I got a problem when I want to get an array type by invoking Java > webservice on windows, Java webservice returned soap message is correctly, > but my client can't deserialize the returned soap message and return empty > array(size is 0). > I noticed that in SoapDeSerializer.cpp, line 922, > if(strcmp(elementName, pName) != 0) > { > pArray->addElement(getCmplxObject(pDZFunct, pCreFunct, pDelFunct, > pName, pNamespace)); > } > else > { > { > #ifdef ENABLE_AXISTRACE > if (axiscpp::AxisTrace::isTraceOn()) > > axiscpp::AxisTrace::traceExit("SoapDeSerializer", > "deserializeEncodedComplexArray", NULL, 0); > #endif > return; > } > Only if strcmp returns not 0, then it will add an element into array, > but here, elementName is string "enumServiceReturn" and "pName" is string > "enumServiceReturn" too, then It won't add an element into array, and return > directly, why elementName can't equalt to pName ? > I think "if(strcmp(elementName, pName) != 0)" may should be > "if(strcmp(elementName, pName) == 0)", is this a bug??? > Soap message returned by java webservice is as below: > <?xml version="1.0" encoding="UTF-8" ?> > - <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > - <soapenv:Body> > - <enumServiceResponse > soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> > - <enumServiceReturn soapenc:arrayType="ns1:PluginServiceInfo[1]" > xsi:type="soapenc:Array" xmlns:ns1="http://PluginService.DCC.trendmicro.com" > xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> > - <enumServiceReturn xsi:type="ns1:PluginServiceInfo"> > <GUID xsi:type="soapenc:string">C5E6B478-0821-459B-92A5-E7DE2876BDD3</GUID> > <name xsi:type="soapenc:string">TMIC FOR CSM</name> > <type xsi:type="xsd:int">256</type> > <version xsi:type="soapenc:string">1.0.0.0000</version> > </enumServiceReturn> > </enumServiceReturn> > </enumServiceResponse> > </soapenv:Body> > </soapenv:Envelope> > My WSDL is as below: > <?xml version="1.0" encoding="UTF-8" ?> > - <wsdl:definitions > targetNamespace="http://localhost:9090/TMICServices/services/PluginServiceRegister" > xmlns="http://schemas.xmlsoap.org/wsdl/" > xmlns:apachesoap="http://xml.apache.org/xml-soap" > xmlns:impl="http://localhost:9090/TMICServices/services/PluginServiceRegister" > > xmlns:intf="http://localhost:9090/TMICServices/services/PluginServiceRegister" > xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:tns1="http://jdom.org" xmlns:tns2="http://lang.java" > xmlns:tns3="http://PluginService.DCC.trendmicro.com" > 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.4 > Built on Apr 22, 2006 (06:55:48 PDT) > --> > - <wsdl:types> > - <schema targetNamespace="http://jdom.org" > xmlns="http://www.w3.org/2001/XMLSchema"> > <import > namespace="http://localhost:9090/TMICServices/services/PluginServiceRegister" > /> > <import namespace="http://PluginService.DCC.trendmicro.com" /> > <import namespace="http://lang.java" /> > <import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> > - <complexType name="JDOMException"> > - <sequence> > <element name="message" nillable="true" type="soapenc:string" /> > <element name="rootCause" nillable="true" type="xsd:anyType" /> > </sequence> > </complexType> > </schema> > - <schema targetNamespace="http://PluginService.DCC.trendmicro.com" > xmlns="http://www.w3.org/2001/XMLSchema"> > <import namespace="http://jdom.org" /> > <import > namespace="http://localhost:9090/TMICServices/services/PluginServiceRegister" > /> > <import namespace="http://lang.java" /> > <import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> > - <complexType name="PluginServiceInfo"> > - <sequence> > <element name="GUID" nillable="true" type="soapenc:string" /> > <element name="name" nillable="true" type="soapenc:string" /> > <element name="type" type="xsd:int" /> > <element name="version" nillable="true" type="soapenc:string" /> > </sequence> > </complexType> > </schema> > - <schema > targetNamespace="http://localhost:9090/TMICServices/services/PluginServiceRegister" > xmlns="http://www.w3.org/2001/XMLSchema"> > <import namespace="http://jdom.org" /> > <import namespace="http://PluginService.DCC.trendmicro.com" /> > <import namespace="http://lang.java" /> > <import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> > - <complexType name="ArrayOf_tns3_PluginServiceInfo"> > - <complexContent> > - <restriction base="soapenc:Array"> > <attribute ref="soapenc:arrayType" > wsdl:arrayType="tns3:PluginServiceInfo[]" /> > </restriction> > </complexContent> > </complexType> > </schema> > </wsdl:types> > - <wsdl:message name="JDOMException"> > <wsdl:part name="fault" type="tns1:JDOMException" /> > </wsdl:message> > - <wsdl:message name="getServiceInfoRequest"> > <wsdl:part name="in0" type="soapenc:string" /> > </wsdl:message> > - <wsdl:message name="updateServiceResponse"> > <wsdl:part name="updateServiceReturn" type="soapenc:string" /> > </wsdl:message> > <wsdl:message name="rollbackServiceResponse" /> > - <wsdl:message name="enumServiceResponse"> > <wsdl:part name="enumServiceReturn" > type="impl:ArrayOf_tns3_PluginServiceInfo" /> > </wsdl:message> > - <wsdl:message name="rollbackServiceRequest"> > <wsdl:part name="in0" type="soapenc:string" /> > </wsdl:message> > - <wsdl:message name="updateServiceRequest"> > <wsdl:part name="in0" type="soapenc:string" /> > <wsdl:part name="in1" type="soapenc:base64Binary" /> > </wsdl:message> > - <wsdl:message name="enumServiceRequest"> > <wsdl:part name="in0" type="xsd:int" /> > </wsdl:message> > - <wsdl:message name="registerServiceResponse"> > <wsdl:part name="registerServiceReturn" type="soapenc:string" /> > </wsdl:message> > - <wsdl:message name="getServiceInfoResponse"> > <wsdl:part name="getServiceInfoReturn" type="tns3:PluginServiceInfo" /> > </wsdl:message> > - <wsdl:message name="registerServiceRequest"> > <wsdl:part name="in0" type="soapenc:string" /> > <wsdl:part name="in1" type="soapenc:base64Binary" /> > </wsdl:message> > - <wsdl:portType name="PluginServiceRegister"> > - <wsdl:operation name="registerService" parameterOrder="in0 in1"> > <wsdl:input message="impl:registerServiceRequest" > name="registerServiceRequest" /> > <wsdl:output message="impl:registerServiceResponse" > name="registerServiceResponse" /> > <wsdl:fault message="impl:JDOMException" name="JDOMException" /> > </wsdl:operation> > - <wsdl:operation name="updateService" parameterOrder="in0 in1"> > <wsdl:input message="impl:updateServiceRequest" name="updateServiceRequest" > /> > <wsdl:output message="impl:updateServiceResponse" > name="updateServiceResponse" /> > <wsdl:fault message="impl:JDOMException" name="JDOMException" /> > </wsdl:operation> > - <wsdl:operation name="rollbackService" parameterOrder="in0"> > <wsdl:input message="impl:rollbackServiceRequest" > name="rollbackServiceRequest" /> > <wsdl:output message="impl:rollbackServiceResponse" > name="rollbackServiceResponse" /> > <wsdl:fault message="impl:JDOMException" name="JDOMException" /> > </wsdl:operation> > - <wsdl:operation name="enumService" parameterOrder="in0"> > <wsdl:input message="impl:enumServiceRequest" name="enumServiceRequest" /> > <wsdl:output message="impl:enumServiceResponse" name="enumServiceResponse" > /> > </wsdl:operation> > - <wsdl:operation name="getServiceInfo" parameterOrder="in0"> > <wsdl:input message="impl:getServiceInfoRequest" > name="getServiceInfoRequest" /> > <wsdl:output message="impl:getServiceInfoResponse" > name="getServiceInfoResponse" /> > </wsdl:operation> > </wsdl:portType> > - <wsdl:binding name="PluginServiceRegisterSoapBinding" > type="impl:PluginServiceRegister"> > <wsdlsoap:binding style="rpc" > transport="http://schemas.xmlsoap.org/soap/http" /> > - <wsdl:operation name="registerService"> > <wsdlsoap:operation soapAction="" /> > - <wsdl:input name="registerServiceRequest"> > <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > namespace="http://common.WebService.DCC.trendmicro.com" use="encoded" /> > </wsdl:input> > - <wsdl:output name="registerServiceResponse"> > <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > namespace="http://localhost:9090/TMICServices/services/PluginServiceRegister" > use="encoded" /> > </wsdl:output> > - <wsdl:fault name="JDOMException"> > <wsdlsoap:fault encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > name="JDOMException" > namespace="http://localhost:9090/TMICServices/services/PluginServiceRegister" > use="encoded" /> > </wsdl:fault> > </wsdl:operation> > - <wsdl:operation name="updateService"> > <wsdlsoap:operation soapAction="" /> > - <wsdl:input name="updateServiceRequest"> > <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > namespace="http://common.WebService.DCC.trendmicro.com" use="encoded" /> > </wsdl:input> > - <wsdl:output name="updateServiceResponse"> > <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > namespace="http://localhost:9090/TMICServices/services/PluginServiceRegister" > use="encoded" /> > </wsdl:output> > - <wsdl:fault name="JDOMException"> > <wsdlsoap:fault encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > name="JDOMException" > namespace="http://localhost:9090/TMICServices/services/PluginServiceRegister" > use="encoded" /> > </wsdl:fault> > </wsdl:operation> > - <wsdl:operation name="rollbackService"> > <wsdlsoap:operation soapAction="" /> > - <wsdl:input name="rollbackServiceRequest"> > <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > namespace="http://common.WebService.DCC.trendmicro.com" use="encoded" /> > </wsdl:input> > - <wsdl:output name="rollbackServiceResponse"> > <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > namespace="http://localhost:9090/TMICServices/services/PluginServiceRegister" > use="encoded" /> > </wsdl:output> > - <wsdl:fault name="JDOMException"> > <wsdlsoap:fault encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > name="JDOMException" > namespace="http://localhost:9090/TMICServices/services/PluginServiceRegister" > use="encoded" /> > </wsdl:fault> > </wsdl:operation> > - <wsdl:operation name="enumService"> > <wsdlsoap:operation soapAction="" /> > - <wsdl:input name="enumServiceRequest"> > <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > namespace="http://common.WebService.DCC.trendmicro.com" use="encoded" /> > </wsdl:input> > - <wsdl:output name="enumServiceResponse"> > <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > namespace="http://localhost:9090/TMICServices/services/PluginServiceRegister" > use="encoded" /> > </wsdl:output> > </wsdl:operation> > - <wsdl:operation name="getServiceInfo"> > <wsdlsoap:operation soapAction="" /> > - <wsdl:input name="getServiceInfoRequest"> > <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > namespace="http://common.WebService.DCC.trendmicro.com" use="encoded" /> > </wsdl:input> > - <wsdl:output name="getServiceInfoResponse"> > <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > namespace="http://localhost:9090/TMICServices/services/PluginServiceRegister" > use="encoded" /> > </wsdl:output> > </wsdl:operation> > </wsdl:binding> > - <wsdl:service name="PluginServiceRegisterService"> > - <wsdl:port binding="impl:PluginServiceRegisterSoapBinding" > name="PluginServiceRegister"> > <wsdlsoap:address > location="http://localhost:9090/TMICServices/services/PluginServiceRegister" > /> > </wsdl:port> > </wsdl:service> > </wsdl:definitions> > Best regards, > Ivan > Trend Micro Product Development Group > EMail: [EMAIL PROTECTED] > [MSN] [EMAIL PROTECTED] [QQ] 20313412 -- 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 --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
