axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jean-Yves Baudy <jy.ba...@free.fr>
Subject Problems with latest CVS Code and WSDL2Ws
Date Wed, 11 Feb 2004 22:20:52 GMT
Hi guys,

I update my Axis code to the last CVS version and I still having no 
success on compiling the generated client code for document literal WSDL 
file :-(.

A lot of progress but still minor issues (at least for document 
literal). So after a quick look on the WSDL2Ws java code I made some 
changes. I finally have success on generated the C++ client code for a 
more complex document literal WSDL file than echoString, echoStruct.

Included the changes I made in a diff format (sorry i'm not able to made 
a patch as open source community done generally). Some of the changes 
are certainly at the wrong place but avoid compilation problems. I also 
made changes in the code to correct some issues for the document literal 
mode works.

I also made a changes in the Axis C/C++ code in the AxisUserAPI.h file. 
For array types the generated code need the following declaration to 
compile.

/* JBY some simple types typedef (avoid compilation pbs of generated cpp 
client code) */
typedef xsd__double_Array double_Array;
typedef xsd__float_Array float_Array;
typedef xsd__boolean_Array boolean_Array;
typedef xsd__string_Array string_Array;
typedef xsd__int_Array int_Array;
typedef xsd__short_Array short_Array;
typedef xsd__long_Array long_Array;

If needed a little WSDL file to show the trouble can be produced.

When testing I also found a big issue on the Axis C/C++ WS stack. When a 
XML element use a C/C++ reserved word this element is prefixed by "_". 
For me only the related C/C++ variable must be renamed but not the C/C++ 
literal value of the element. If we target a Web Services Server where 
the stack is not developed by Axis team the server will not renamed the 
C/C++ revered word. Example:

SOAP fragment returned by Web Service server:

          <Status xmlns="...">
             <return xmlns="">
                <Status>OK</Status>
             </return>
          </Status>

Axis C/C++ stack failed to parse the result because it expect:

          <Status xmlns="...">
             <_return xmlns="">
                <Status>OK</Status>
             </_return>
          </Status>


Regards,


Jean-Yves

Mime
View raw message