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 Jean-Yves Baudy <jy...@free.fr> on 2004/02/11 23:20:52 UTC

Problems with latest CVS Code and WSDL2Ws

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

Re: Problems with latest CVS Code and WSDL2Ws

Posted by su...@opensource.lk.
I am looking at the issues you have mentioned. Is it possible you to send
me the WSDL you used for this ?

Thanks,

Susantha.

> 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