You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-user@axis.apache.org by Shailesh Srivastava <sh...@toshiba-tesi.com> on 2007/10/19 10:22:49 UTC

Bug Axiscpp1.6B - Doc/literal

Hi All,

 

I have developed a Web-service based on the AxisCpp 1.6b.

My WSDL specifies the style as Doc/Literal.

 

But the generated code always adds "Soap method" by using
"createSoapMethod". This is against the SOAP Standard.

 

Instead, there should be no message name (operation name) at all for
DOC/Literal type.

 

I tried using "serializeAsElement" (without using "createSoapMethod),
but here the simple_axis_server dumps.

 

Can any one suggest me how Can I get the SOAP Operation removed from the
response Packets. What Changes I need to make in the Wrapper???

 

The present code in my wrapper is:

 

int ALEServicePortTypeWrapper::getVendorVersion(void* pMsg)

{

      IMessageData* mc = (IMessageData*)pMsg;

      int nStatus;

      IWrapperSoapSerializer* pIWSSZ = NULL;

      mc->getSoapSerializer(&pIWSSZ);

      if (!pIWSSZ)

      {

            return AXIS_FAIL;

      }

      IWrapperSoapDeSerializer* pIWSDZ = NULL;

      mc->getSoapDeSerializer(&pIWSDZ);

      if (!pIWSDZ)

      {

            return AXIS_FAIL;

      }

      /* check whether we have got correct message */

      if (AXIS_SUCCESS != pIWSDZ->checkMessageBody("GetVendorVersion",
"urn:epcglobal:ale:wsdl:1"))

      {

            return AXIS_FAIL;

      }

      pIWSSZ->createSoapMethod("GetVendorVersionResult",
"urn:epcglobal:ale:wsdl:1");

 

      if (AXIS_SUCCESS != (nStatus = pIWSDZ->getStatus()))

      {

            return nStatus;

      }

 

      try

      {

      xsd__string ret = pWs->getVendorVersion();

      nStatus = pIWSSZ->addOutputParam("_string", ret, XSD_STRING);

      

      return nStatus;

      }

 

Shailesh Srivastava

Sr. Software Engineer

Ttec.soc-soft.com

Extn:3297

Mb: +919886624708