axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vaidhy Kumar (JIRA)" <axis-c-...@ws.apache.org>
Subject [jira] [Updated] (AXISCPP-1080) The generated codes does not create the correct SOAPRequest.
Date Fri, 13 May 2011 21:36:47 GMT

     [ https://issues.apache.org/jira/browse/AXISCPP-1080?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Vaidhy Kumar updated AXISCPP-1080:
----------------------------------

    Description: 
The generated client stub is not creating the correct request. The name of the operation is
wrong.

<?xml version='1.0' encoding='utf-8' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Header><ns1:SSOCookie xmlns:ns1="http://abc.com/security"></ns1:SSOCookie></SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns1:ProductTerms xmlns:ns1="http://www.cat.com/ppd"><ProductId>1.000000</ProductId>
<Definition> </Definition>
<LongName>AS</LongName>
<ShortName> </ShortName>
<EDSName> </EDSName>
</ns1:ProductTerms>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Respone is  SOAPFault.
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <soapenv:Body>
  <soapenv:Fault>
   <faultcode>soapenv:Server.generalException</faultcode>
   <faultstring>No such operation &apos;ProductTerms&apos;</faultstring>
   <detail/>
  </soapenv:Fault>
 </soapenv:Body>
</soapenv:Envelope>


The generated stub code

ProductTermsArray* PiecePartServicePT::
assemblySearch(ProductTerms* Value0)
{
	ProductTermsArray* pReturn = NULL;
	const char* pcCmplxFaultName = NULL;

	try
	{

	// ======================================================================
	// Initialize client engine, set SOAP version, SOAPAction, operation, etc.
	// ======================================================================

		if (AXIS_SUCCESS != m_pCall->initialize(CPP_DOC_PROVIDER))
			return pReturn;

		if (NULL==m_pCall->getTransportProperty("SOAPAction",false))
			m_pCall->setTransportProperty(SOAPACTION_HEADER , "");

		m_pCall->setSOAPVersion(SOAP_VER_1_1);
		m_pCall->setOperation("AssemblySearchRequest", "http://www.abc.com/ppd", false);

	// ======================================================================
	// Apply SSL configuration properties and user-set SOAP headers.
	// ======================================================================

		includeSecure();
		applyUserPreferences();

	// ======================================================================
	// Process parameters.
	// ======================================================================

		char cPrefixAndParamName0[22];
		sprintf( cPrefixAndParamName0, "%s:ProductTerms", m_pCall->getNamespacePrefix("http://www.abc.com/ppd"));
		m_pCall->addCmplxParameter(Value0, (void*)Axis_Serialize_ProductTerms, (void*)Axis_Delete_ProductTerms,
cPrefixAndParamName0, Axis_URI_ProductTerms);

	// ======================================================================
	// Invoke web service, send/receive operation. Handle output parameters, if any.
	// ======================================================================

		if (AXIS_SUCCESS == m_pCall->sendAndReceive())
		{
			if(AXIS_SUCCESS == m_pCall->validateMessage("AssemblySearchResponse", "http://www.cat.com/ppd",
false))
			{
				pReturn = (ProductTermsArray*)m_pCall->getCmplxObject((void*) Axis_DeSerialize_ProductTermsArray,
(void*) Axis_Create_ProductTermsArray, (void*) Axis_Delete_ProductTermsArray,"ProductTermsArray",
0);
			}

			checkForExtraneousElements();
		}

		m_pCall->unInitialize();
		return pReturn;
	}
	catch(AxisException& e)
	{
		int iExceptionCode = e.getExceptionCode();

		if(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)
		{
			m_pCall->unInitialize();
			throw;
		}

		ISoapFault* pSoapFault = (ISoapFault*)
			m_pCall->checkFault("Fault","http://www.abc.com:8463/ICC/services/PiecePartServiceSOAP"
);

		if(pSoapFault)
		{
			const char *detail = pSoapFault->getSimpleFaultDetail();
			bool deleteDetail=false;

			if (NULL==detail || 0==strlen(detail))
			{
				detail=m_pCall->getFaultAsXMLString();
				if (NULL==detail)
					detail="";
				else
					deleteDetail=true;
			}

			OtherFaultException ofe(pSoapFault->getFaultcode(),
				pSoapFault->getFaultstring(), pSoapFault->getFaultactor(),
				detail, iExceptionCode);

			if (deleteDetail && NULL!=detail)
				Axis::AxisDelete( (void *) const_cast<char*>(detail), XSD_STRING);

			m_pCall->unInitialize();
			delete pSoapFault;
			throw ofe;
		}
		else
		{
			m_pCall->unInitialize();
			delete pSoapFault;
			throw;
		}
	}
}

  was:
The generated client stub is not creating the correct request. The name of the operation is
wrong.

<?xml version='1.0' encoding='utf-8' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Header><ns1:SSOCookie xmlns:ns1="http://tuf.cat.com/security">NDBjcHBkd2Z8dWlkPTQwY3BwZHdmLE9VPUFwcGxpY2F0aW9ucyxEQz1jYXQsREM9Y29tfDQwY3BwZHdmfDE2NS4yNi4yNDAuMzV8e299e2NhdEFmZmlsaWF0ZWRPcmdDb2RlfXtjYXRBZmZpbGlhdGlvbn17Y2F0QWZmaWxpYXRpb25Db2RlfXtjYXRDVVBJRH18MTMwNTM1NzQ4NHwxMzA1MzM1ODg0fDM2MDAwfE0vMVlVMEtJa3hadi9ZQTRUczEzelVoRTdrTT07fDIuMC4wX1FBfGhLVjU1YXN6dkhYN0ROd1c0MUtLSDV6ZkwxakpBejNwVVZKOTJKKzJMWkpzTG5KbTQvV2RZU1pzNXdFVHpxOVViM25aaHRVQzNFM3I4VDlPeWczbEY2OWswMnBOME5lbmdRbUR3R3hKODNyVS9IUzE2eTZvUVlPQjNKN3JiTjk1d0xRaFFvdDdDaCs5WmpZczdWTXNoODZpZUJXUytPYUtJQzh6K2IycHA0QkZKTGRQTnozd1JMQzBLUzVwampXcmlsSW5pUE9WK3dRakN0dnpIb2kyc25nMUVJVFFTUk1SdGFtVEpDYkh1SU5IRlRWMStoTFlWckpqU29DcGtDSmVPQWs3NmIzRGczYnVYZGFCYlh3bU5YZXpFSWUzbnZzMlNBVnpSajJGMmhiUjBSaXNOa1d2cVZLK2Q5TEVnZndJakpiM1J4Y2JFQWpBaEhyR3lkQ1RVZz09</ns1:SSOCookie></SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns1:ProductTerms xmlns:ns1="http://www.cat.com/ppd"><ProductId>1.000000</ProductId>
<Definition> </Definition>
<LongName>AS</LongName>
<ShortName> </ShortName>
<EDSName> </EDSName>
</ns1:ProductTerms>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Respone is  SOAPFault.
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <soapenv:Body>
  <soapenv:Fault>
   <faultcode>soapenv:Server.generalException</faultcode>
   <faultstring>No such operation &apos;ProductTerms&apos;</faultstring>
   <detail/>
  </soapenv:Fault>
 </soapenv:Body>
</soapenv:Envelope>


The generated stub code

ProductTermsArray* PiecePartServicePT::
assemblySearch(ProductTerms* Value0)
{
	ProductTermsArray* pReturn = NULL;
	const char* pcCmplxFaultName = NULL;

	try
	{

	// ======================================================================
	// Initialize client engine, set SOAP version, SOAPAction, operation, etc.
	// ======================================================================

		if (AXIS_SUCCESS != m_pCall->initialize(CPP_DOC_PROVIDER))
			return pReturn;

		if (NULL==m_pCall->getTransportProperty("SOAPAction",false))
			m_pCall->setTransportProperty(SOAPACTION_HEADER , "");

		m_pCall->setSOAPVersion(SOAP_VER_1_1);
		m_pCall->setOperation("AssemblySearchRequest", "http://www.abc.com/ppd", false);

	// ======================================================================
	// Apply SSL configuration properties and user-set SOAP headers.
	// ======================================================================

		includeSecure();
		applyUserPreferences();

	// ======================================================================
	// Process parameters.
	// ======================================================================

		char cPrefixAndParamName0[22];
		sprintf( cPrefixAndParamName0, "%s:ProductTerms", m_pCall->getNamespacePrefix("http://www.abc.com/ppd"));
		m_pCall->addCmplxParameter(Value0, (void*)Axis_Serialize_ProductTerms, (void*)Axis_Delete_ProductTerms,
cPrefixAndParamName0, Axis_URI_ProductTerms);

	// ======================================================================
	// Invoke web service, send/receive operation. Handle output parameters, if any.
	// ======================================================================

		if (AXIS_SUCCESS == m_pCall->sendAndReceive())
		{
			if(AXIS_SUCCESS == m_pCall->validateMessage("AssemblySearchResponse", "http://www.cat.com/ppd",
false))
			{
				pReturn = (ProductTermsArray*)m_pCall->getCmplxObject((void*) Axis_DeSerialize_ProductTermsArray,
(void*) Axis_Create_ProductTermsArray, (void*) Axis_Delete_ProductTermsArray,"ProductTermsArray",
0);
			}

			checkForExtraneousElements();
		}

		m_pCall->unInitialize();
		return pReturn;
	}
	catch(AxisException& e)
	{
		int iExceptionCode = e.getExceptionCode();

		if(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)
		{
			m_pCall->unInitialize();
			throw;
		}

		ISoapFault* pSoapFault = (ISoapFault*)
			m_pCall->checkFault("Fault","http://www.abc.com:8463/ICC/services/PiecePartServiceSOAP"
);

		if(pSoapFault)
		{
			const char *detail = pSoapFault->getSimpleFaultDetail();
			bool deleteDetail=false;

			if (NULL==detail || 0==strlen(detail))
			{
				detail=m_pCall->getFaultAsXMLString();
				if (NULL==detail)
					detail="";
				else
					deleteDetail=true;
			}

			OtherFaultException ofe(pSoapFault->getFaultcode(),
				pSoapFault->getFaultstring(), pSoapFault->getFaultactor(),
				detail, iExceptionCode);

			if (deleteDetail && NULL!=detail)
				Axis::AxisDelete( (void *) const_cast<char*>(detail), XSD_STRING);

			m_pCall->unInitialize();
			delete pSoapFault;
			throw ofe;
		}
		else
		{
			m_pCall->unInitialize();
			delete pSoapFault;
			throw;
		}
	}
}


> The generated codes does not create the correct SOAPRequest.
> ------------------------------------------------------------
>
>                 Key: AXISCPP-1080
>                 URL: https://issues.apache.org/jira/browse/AXISCPP-1080
>             Project: Axis-C++
>          Issue Type: Bug
>          Components: Client - Stub
>    Affects Versions:  1.6 Beta
>         Environment: Axis Client : latest code from SVN 
> XMLParser: xerces-c-2.7.0 
> WSDL2WS: Build with latest code using Axis Java 1.6
> Compiler: VC++ 2005(Vc8) 
>            Reporter: Vaidhy Kumar
>         Attachments: PiecePartServiceSOAP_Issue.xml
>
>
> The generated client stub is not creating the correct request. The name of the operation
is wrong.
> <?xml version='1.0' encoding='utf-8' ?>
> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> <SOAP-ENV:Header><ns1:SSOCookie xmlns:ns1="http://abc.com/security"></ns1:SSOCookie></SOAP-ENV:Header>
> <SOAP-ENV:Body>
> <ns1:ProductTerms xmlns:ns1="http://www.cat.com/ppd"><ProductId>1.000000</ProductId>
> <Definition> </Definition>
> <LongName>AS</LongName>
> <ShortName> </ShortName>
> <EDSName> </EDSName>
> </ns1:ProductTerms>
> </SOAP-ENV:Body>
> </SOAP-ENV:Envelope>
> Respone is  SOAPFault.
> <?xml version="1.0" encoding="UTF-8"?>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>  <soapenv:Body>
>   <soapenv:Fault>
>    <faultcode>soapenv:Server.generalException</faultcode>
>    <faultstring>No such operation &apos;ProductTerms&apos;</faultstring>
>    <detail/>
>   </soapenv:Fault>
>  </soapenv:Body>
> </soapenv:Envelope>
> The generated stub code
> ProductTermsArray* PiecePartServicePT::
> assemblySearch(ProductTerms* Value0)
> {
> 	ProductTermsArray* pReturn = NULL;
> 	const char* pcCmplxFaultName = NULL;
> 	try
> 	{
> 	// ======================================================================
> 	// Initialize client engine, set SOAP version, SOAPAction, operation, etc.
> 	// ======================================================================
> 		if (AXIS_SUCCESS != m_pCall->initialize(CPP_DOC_PROVIDER))
> 			return pReturn;
> 		if (NULL==m_pCall->getTransportProperty("SOAPAction",false))
> 			m_pCall->setTransportProperty(SOAPACTION_HEADER , "");
> 		m_pCall->setSOAPVersion(SOAP_VER_1_1);
> 		m_pCall->setOperation("AssemblySearchRequest", "http://www.abc.com/ppd", false);
> 	// ======================================================================
> 	// Apply SSL configuration properties and user-set SOAP headers.
> 	// ======================================================================
> 		includeSecure();
> 		applyUserPreferences();
> 	// ======================================================================
> 	// Process parameters.
> 	// ======================================================================
> 		char cPrefixAndParamName0[22];
> 		sprintf( cPrefixAndParamName0, "%s:ProductTerms", m_pCall->getNamespacePrefix("http://www.abc.com/ppd"));
> 		m_pCall->addCmplxParameter(Value0, (void*)Axis_Serialize_ProductTerms, (void*)Axis_Delete_ProductTerms,
cPrefixAndParamName0, Axis_URI_ProductTerms);
> 	// ======================================================================
> 	// Invoke web service, send/receive operation. Handle output parameters, if any.
> 	// ======================================================================
> 		if (AXIS_SUCCESS == m_pCall->sendAndReceive())
> 		{
> 			if(AXIS_SUCCESS == m_pCall->validateMessage("AssemblySearchResponse", "http://www.cat.com/ppd",
false))
> 			{
> 				pReturn = (ProductTermsArray*)m_pCall->getCmplxObject((void*) Axis_DeSerialize_ProductTermsArray,
(void*) Axis_Create_ProductTermsArray, (void*) Axis_Delete_ProductTermsArray,"ProductTermsArray",
0);
> 			}
> 			checkForExtraneousElements();
> 		}
> 		m_pCall->unInitialize();
> 		return pReturn;
> 	}
> 	catch(AxisException& e)
> 	{
> 		int iExceptionCode = e.getExceptionCode();
> 		if(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)
> 		{
> 			m_pCall->unInitialize();
> 			throw;
> 		}
> 		ISoapFault* pSoapFault = (ISoapFault*)
> 			m_pCall->checkFault("Fault","http://www.abc.com:8463/ICC/services/PiecePartServiceSOAP"
);
> 		if(pSoapFault)
> 		{
> 			const char *detail = pSoapFault->getSimpleFaultDetail();
> 			bool deleteDetail=false;
> 			if (NULL==detail || 0==strlen(detail))
> 			{
> 				detail=m_pCall->getFaultAsXMLString();
> 				if (NULL==detail)
> 					detail="";
> 				else
> 					deleteDetail=true;
> 			}
> 			OtherFaultException ofe(pSoapFault->getFaultcode(),
> 				pSoapFault->getFaultstring(), pSoapFault->getFaultactor(),
> 				detail, iExceptionCode);
> 			if (deleteDetail && NULL!=detail)
> 				Axis::AxisDelete( (void *) const_cast<char*>(detail), XSD_STRING);
> 			m_pCall->unInitialize();
> 			delete pSoapFault;
> 			throw ofe;
> 		}
> 		else
> 		{
> 			m_pCall->unInitialize();
> 			delete pSoapFault;
> 			throw;
> 		}
> 	}
> }

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: c-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: c-dev-help@axis.apache.org


Mime
View raw message