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 Samisa Abeysinghe <sa...@gmail.com> on 2005/06/20 11:58:06 UTC

SOAP 1.1 hardcoded in code generator

Hi All,
    I made a bit disturbing discovery in the code generator while
looking into http://issues.apache.org/jira/browse/AXISCPP-363. We have
the provision to select between SOAP 1.1 and SOAP 1.2 in
IHeaderBlock::createStdAttribute().

As an example, one can use:
IHeaderBlock *phb=ws.createSOAPHeaderBlock("TestHeader","http://axis.com");
IAttribute *attr=phb->createStdAttribute(ROLE_NEXT,SOAP_VER_1_2);

However, searching for setSOAPVersion in WSDL tool, I get see that
SOAP_VER_1_1 is always hardcoded into the generated codde. The version
setting is called in each and every method invocation on the stub, so
even if we set it at stub level, it is overidden by the generated
code. Actually, at the moment we do not have an API to select between
soap versions at stub level.

So simply speaking, we only support SOAP 1.1 :-(

Here is the WSDL tool segments where we set SOAP versions:
src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ClientStubWriter.java:        
   "\tpCall->_functions->setSOAPVersion(pCall->_object,
SOAP_VER_1_1);\n");
src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java:
       writer.write ("\tm_pCall->setSOAPVersion(SOAP_VER_1_1);\n");
src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubWriter.java:      
 writer.write("\t\tm_pCall->setSOAPVersion(SOAP_VER_1_1);\n");

Thoughts on this please...

Thanks,
Samisa...

Re: SOAP 1.1 hardcoded in code generator

Posted by Adrian Dick <ad...@uk.ibm.com>.
Hi,

In the coming weeks I am planning on undertaking the work to implement SOAP
1.2 Faults (see
http://marc.theaimsgroup.com/?l=axis-c-dev&m=111640463326474&w=2 for
proposed design), and this will necessarily require that various other SOAP
1.2 aspects be correctly enabled.

Based on my investigations into the existing Fault model, I expect there
are several other places we'll see problems with support SOAP 1.2,
including the removal of SoapAction, which we currently use for handlers
and on the server side.

So, perhaps it is just as well the generated stubs are forced to SOAP 1.1
at the moment.    :-)

Adrian
_______________________________________
Adrian Dick (adrian.dick@uk.ibm.com)


Samisa Abeysinghe <sa...@gmail.com> wrote on 20/06/2005
10:58:06:

> Hi All,
>     I made a bit disturbing discovery in the code generator while
> looking into http://issues.apache.org/jira/browse/AXISCPP-363. We have
> the provision to select between SOAP 1.1 and SOAP 1.2 in
> IHeaderBlock::createStdAttribute().
>
> As an example, one can use:
> IHeaderBlock
*phb=ws.createSOAPHeaderBlock("TestHeader","http://axis.com");
> IAttribute *attr=phb->createStdAttribute(ROLE_NEXT,SOAP_VER_1_2);
>
> However, searching for setSOAPVersion in WSDL tool, I get see that
> SOAP_VER_1_1 is always hardcoded into the generated codde. The version
> setting is called in each and every method invocation on the stub, so
> even if we set it at stub level, it is overidden by the generated
> code. Actually, at the moment we do not have an API to select between
> soap versions at stub level.
>
> So simply speaking, we only support SOAP 1.1 :-(
>
> Here is the WSDL tool segments where we set SOAP versions:
> src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ClientStubWriter.java:
>    "\tpCall->_functions->setSOAPVersion(pCall->_object,
> SOAP_VER_1_1);\n");
> src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java:
>        writer.write ("\tm_pCall->setSOAPVersion(SOAP_VER_1_1);\n");
> src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubWriter.java:
>  writer.write("\t\tm_pCall->setSOAPVersion(SOAP_VER_1_1);\n");
>
> Thoughts on this please...
>
> Thanks,
> Samisa...