[ 
http://issues.apache.org/jira/browse/AXISCPP-550?page=comments#action_60942 ]
     
Dushshantha Chandradasa commented on AXISCPP-550:
-------------------------------------------------

Samisa,

most of the test clients are compiling except InteropTestRound1Doc. It gives
following errors..

       [cc] InteropTestPortType.cpp
       [cc] C:\obj\test\generated\cpp\InteropTestRound1Doc\InteropTestPortType.h
pp(34) : error C2061: syntax error : identifier 'Value0'
       [cc] C:\obj\test\generated\cpp\InteropTestRound1Doc\InteropTestPortType.h
pp(36) : error C2061: syntax error : identifier 'Value0'
       [cc] C:\obj\test\generated\cpp\InteropTestRound1Doc\InteropTestPortType.c
pp(622) : error C2501: 'echoBase64' : missing storage-class or type specifiers
       [cc] C:\obj\test\generated\cpp\InteropTestRound1Doc\InteropTestPortType.c
pp(622) : error C2511: 'echoBase64' : overloaded member function 'int *(char)' n
ot found in 'InteropTestPortType'
       [cc]         C:\obj\test\generated\cpp\InteropTestRound1Doc\InteropTestPo
rtType.hpp(16) : see declaration of 'InteropTestPortType'
       [cc] C:\obj\test\generated\cpp\InteropTestRound1Doc\InteropTestPortType.c
pp(752) : error C2501: 'echoHexBinary' : missing storage-class or type specifier
s
       [cc] C:\obj\test\generated\cpp\InteropTestRound1Doc\InteropTestPortType.c
pp(752) : error C2511: 'echoHexBinary' : overloaded member function 'int *(char)
' not found in 'InteropTestPortType'
       [cc]         C:\obj\test\generated\cpp\InteropTestRound1Doc\InteropTestPo
rtType.hpp(16) : see declaration of 'InteropTestPortType'
       [cc] InteropTestRound1DocClient.cpp
       [cc] C:\obj\test\generated\cpp\InteropTestRound1Doc\InteropTestPortType.h
pp(34) : error C2061: syntax error : identifier 'Value0'
       [cc] C:\obj\test\generated\cpp\InteropTestRound1Doc\InteropTestPortType.h
pp(36) : error C2061: syntax error : identifier 'Value0'
       [cc] C:\obj\test\generated\cpp\InteropTestRound1Doc\InteropTestRound1DocC
lient.cpp(75) : warning C4305: 'initializing' : truncation from 'const double' t
o 'float'
       [cc] C:\obj\test\generated\cpp\InteropTestRound1Doc\InteropTestRound1DocC
lient.cpp(95) : warning C4305: '=' : truncation from 'const double' to 'float'
       [cc] C:\obj\test\generated\cpp\InteropTestRound1Doc\InteropTestRound1DocC
lient.cpp(105) : error C2440: '=' : cannot convert from 'class SOAPStruct *' to
'class SOAPStruct ** '
       [cc]         Types pointed to are unrelated; conversion requires reinterp
ret_cast, C-style cast or function-style cast
       [cc] C:\obj\test\generated\cpp\InteropTestRound1Doc\InteropTestRound1DocC
lient.cpp(109) : error C2228: left of '.varFloat' must have class/struct/union t
ype
       [cc] C:\obj\test\generated\cpp\InteropTestRound1Doc\InteropTestRound1DocC
lient.cpp(110) : error C2228: left of '.varInt' must have class/struct/union typ
e
       [cc] C:\obj\test\generated\cpp\InteropTestRound1Doc\InteropTestRound1DocC
lient.cpp(112) : error C2228: left of '.varString' must have class/struct/union
type
       [cc] C:\obj\test\generated\cpp\InteropTestRound1Doc\InteropTestRound1DocC
lient.cpp(132) : error C2660: 'echoBase64' : function does not take 1 parameters

       [cc] C:\obj\test\generated\cpp\InteropTestRound1Doc\InteropTestRound1DocC
lient.cpp(132) : error C2228: left of '.__size' must have class/struct/union typ
e
       [cc] C:\obj\test\generated\cpp\InteropTestRound1Doc\InteropTestRound1DocC
lient.cpp(144) : error C2664: 'echoDate' : cannot convert parameter 1 from 'stru
ct tm' to 'struct tm *'
       [cc]         No user-defined-conversion operator available that can perfo
rm this conversion, or the operator cannot be called
       [cc] C:\obj\test\generated\cpp\InteropTestRound1Doc\InteropTestRound1DocC
lient.cpp(154) : error C2660: 'echoHexBinary' : function does not take 1 paramet
ers
       [cc] C:\obj\test\generated\cpp\InteropTestRound1Doc\InteropTestRound1DocC
lient.cpp(154) : error C2228: left of '.__size' must have class/struct/union typ
e
       [cc] C:\obj\test\generated\cpp\InteropTestRound1Doc\InteropTestRound1DocC
lient.cpp(163) : error C2664: 'echoDecimal' : cannot convert parameter 1 from 'c
onst double' to 'double *'
       [cc]         There is no context in which this conversion is possible
       [cc] SOAPStruct.cpp

Andrew,

problem still there????


> WSDL2Ws does not always use the element names from WSDL
> -------------------------------------------------------
>
>          Key: AXISCPP-550
>          URL: http://issues.apache.org/jira/browse/AXISCPP-550
>      Project: Axis-C++
>         Type: Bug
>   Components: WSDL processing
>     Reporter: Andrew Perry
>     Assignee: Samisa Abeysinghe

>
> I have created a WSDL to test nested complex types with arrays of complex
> types which also contain simple arrays as well as other data elements.
> The WSDL definition of one of the complex types is
> ---------------------------------------------
>    <complexType name="ComplexType1">
>     <sequence>
>      <element name="simpleArrays" nillable="true"
> type="impl:SimpleArrays"/>
>      <element name="string" nillable="true" type="xsd:string"/>
>      <element name="int" type="xsd:int"/>
>     </sequence>
>    </complexType>
> ---------------------------------------------
> The generated stubs for one of the nested complex types has named the
> elements as follows:
> public:
>     SimpleArrays* simpleArrays;
>     xsd__string _string;
>     xsd__int _int;
> In the WSDL the element names are reserved words in the 'C/C++' language so
> the '_' is put in the element name. Unfortunately it was also using this
> name in the Axis_Serialize_xxx method for serializing the elements,
> pSZ->serializeAsElement("_string", Axis_URI_ComplexType1,
> (void*)(param->str_string), XSD_STRING); rather than the name of the
> element from the WSDL which is just "string" and "int" without the '_'.
> This causes an Internal Server Error as the element names do not match the
> name in the WSDL so the server doesn't know what to do.
> ---------- formatted for clarity ----------
> HTTP/1.1 500 Internal Server Error
> Server: WebSphere Application Server/5.1
> Content-Type: text/xml; charset=utf-8
> Content-Language: en-US
> Transfer-Encoding: chunked
> 2ec
> <?xml version="1.0" encoding="UTF-8"?>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
> xmlns:xsd="http://www.w3.org/2001/XMLSchema";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
>   <soapenv:Body>
>     <soapenv:Fault>
>       <faultcode xmlns="">Server.generalException</faultcode>
>       <faultstring xmlns="">
>        <![CDATA[org.xml.sax.SAXException: WSWS3047E: Error: Cannot
> deserialize element _string of bean
> org.apache.test.nestedcomplex.ComplexType1. To see the message containing
> the parsing error in the log, either enable web service engine tracing or
> set MessageContext.setHighFidelity(true).]]>
>       </faultstring>
>       <detail xmlns=""/>
>     </soapenv:Fault>
>   </soapenv:Body>
> </soapenv:Envelope>
> 0
> ---------------------------------------------
> By manually editing the generated stubs to use the correct element name
> from the WSDL the test works.
> Attached WSDL. (See attached file: NestedComplex.wsdl)
> Also changing the names in the WSDL will solve it, but that's not the
> point.

-- 
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
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira

Reply via email to