[
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 'ProductTerms'</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 'ProductTerms'</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 'ProductTerms'</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: [email protected]
For additional commands, e-mail: [email protected]