You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by da...@apache.org on 2004/05/20 05:48:04 UTC
cvs commit: ws-axis/c/src/soap AxisSoapException.cpp SoapDeSerializer.cpp SoapSerializer.cpp
damitha 2004/05/19 20:48:04
Modified: c/include/axis/server AxisException.h
c/samples/client/rpcfault MathOps.cpp
c/samples/server/rpcfault MathOpsWrapper.cpp
c/src/common AxisException.cpp
c/src/soap AxisSoapException.cpp SoapDeSerializer.cpp
SoapSerializer.cpp
Log:
Revision Changes Path
1.10 +1 -1 ws-axis/c/include/axis/server/AxisException.h
Index: AxisException.h
===================================================================
RCS file: /home/cvs/ws-axis/c/include/axis/server/AxisException.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- AxisException.h 18 May 2004 10:32:38 -0000 1.9
+++ AxisException.h 20 May 2004 03:48:03 -0000 1.10
@@ -146,7 +146,7 @@
/*Following exceptions are not releated to soap faults
*/
AXISC_UNKNOWN_ELEMENT_EXCEPTION,
- AXISC_SOAP_FAULT_EXCEPTION,
+ AXISC_NODEVALUE_MISMATCH_EXCEPTION,
/*
* This FAULT_LAST is not used as a fault code, but instead is used
1.3 +15 -22 ws-axis/c/samples/client/rpcfault/MathOps.cpp
Index: MathOps.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/samples/client/rpcfault/MathOps.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- MathOps.cpp 19 May 2004 09:34:57 -0000 1.2
+++ MathOps.cpp 20 May 2004 03:48:03 -0000 1.3
@@ -31,6 +31,9 @@
int MathOps::div(int Value0, int Value1)
{
int Ret;
+ char* cFaultcode;
+ char* cFaultstring;
+ char* cFaultactor;
if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL)) return Ret;
m_pCall->setTransportProperty(SOAPACTION_HEADER , "MathOps#div");
m_pCall->setSOAPVersion(SOAP_VER_1_1);
@@ -39,36 +42,26 @@
m_pCall->addParameter((void*)&Value1, "in1", XSD_INT);
if (AXIS_SUCCESS == m_pCall->invoke())
{
- if(AXIS_SUCCESS == m_pCall->checkMessage("divResponse", "http://localhost/axis/MathOps"))
+ if(AXIS_SUCCESS == m_pCall->checkMessage("divResponse",
+ "http://localhost/axis/MathOps"))
{
Ret = m_pCall->getElementAsInt("addReturn", 0);
}
- else//Exception handling code goes here
+ else if(AXIS_SUCCESS == m_pCall->checkMessage("fault",
+ "http://localhost/axis/MathOps")) //Exception handling code goes here
{
+ cFaultcode = m_pCall->getElementAsChar("", 0);
+ cFaultstring = m_pCall->getElementAsChar("", 0);
+ cFaultactor = m_pCall->getElementAsChar("", 0);
+ SOAPStructFault* pFaultDetail = NULL;
+ pFaultDetail = (SOAPStructFault*)m_pCall->
+ getCmplxObject((void*) Axis_DeSerialize_SOAPStructFault,
+ (void*) Axis_Create_SOAPStructFault,
+ (void*) Axis_Delete_SOAPStructFault,"faultstruct", 0);
}
}
m_pCall->unInitialize();
return Ret;
-
-
-
- SOAPStruct* pReturn = NULL;
- if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL)) return pReturn;
- m_pCall->setTransportProperty(SOAPACTION_HEADER , "base#echoStruct");
- m_pCall->setSOAPVersion(SOAP_VER_1_1);
- m_pCall->setOperation("echoStruct", "http://soapinterop.org/");
- m_pCall->addCmplxParameter(Value0, (void*)Axis_Serialize_SOAPStruct, (void*)Axis_Delete_SOAPStruct, "inputStruct", Axis_URI_SOAPStruct);
- if (AXIS_SUCCESS == m_pCall->invoke())
- {
- if(AXIS_SUCCESS == m_pCall->checkMessage("echoStructResponse", ""))
- {
- pReturn = (SOAPStruct*)m_pCall->getCmplxObject((void*) Axis_DeSerialize_SOAPStruct, (void*) Axis_Create_SOAPStruct, (void*) Axis_Delete_SOAPStruct,"return", 0);
- }
- }
- m_pCall->unInitialize();
- return pReturn;
-
-
}
int MathOps::getFaultDetail(char** ppcDetail)
1.4 +1 -1 ws-axis/c/samples/server/rpcfault/MathOpsWrapper.cpp
Index: MathOpsWrapper.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/samples/server/rpcfault/MathOpsWrapper.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- MathOpsWrapper.cpp 18 May 2004 10:54:45 -0000 1.3
+++ MathOpsWrapper.cpp 20 May 2004 03:48:03 -0000 1.4
@@ -91,7 +91,7 @@
getCmplxObject((void*)Axis_DeSerialize_SOAPStructFault,
(void*)Axis_Create_SOAPStructFault, (void*)Axis_Delete_SOAPStructFault,
"faultstruct", Axis_URI_SOAPStructFault);
- pIWSSZ->addFaultDetail(objFault, (void*)Axis_Serialize_SOAPStructFault,
+ pIWSSZ->addFaultDetail(objFault, (void*)Axis_Serialize_SOAPStructFault,
(void*)Axis_Delete_SOAPStructFault, "DivByZeroException", Axis_URI_SOAPStructFault);
throw AxisDivByZeroException();
1.17 +3 -6 ws-axis/c/src/common/AxisException.cpp
Index: AxisException.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/common/AxisException.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- AxisException.cpp 18 May 2004 04:32:30 -0000 1.16
+++ AxisException.cpp 20 May 2004 03:48:03 -0000 1.17
@@ -66,14 +66,11 @@
string sMessage;
switch(iExceptionCode)
{
- case SOAP_VERSIONMISMATCH :
- sMessage = "Soap Version mismatch fault occured";
- break;
- case SOAP_MUSTUNDERSTAND:
- sMessage = "Soap Must understand fault occured";
- break;
case SERVER_TESTEXCEPTION:
sMessage = "This is a testing error";
+ break;
+ case AXISC_NODEVALUE_MISMATCH_EXCEPTION:
+ sMessage = "Cannot deserialize the requested element";
break;
default:
sMessage = "Unknown Exception has occured";
1.3 +6 -0 ws-axis/c/src/soap/AxisSoapException.cpp
Index: AxisSoapException.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/soap/AxisSoapException.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- AxisSoapException.cpp 18 May 2004 04:32:31 -0000 1.2
+++ AxisSoapException.cpp 20 May 2004 03:48:03 -0000 1.3
@@ -81,6 +81,12 @@
switch(iExceptionCode)
{
+ case SOAP_VERSIONMISMATCH :
+ sMessage = "Soap Version mismatch fault occured";
+ break;
+ case SOAP_MUSTUNDERSTAND:
+ sMessage = "Soap Must understand fault occured";
+ break;
case CLIENT_SOAP_MESSAGEINCOMPLETE:
sMessage = "Received message is incomplete";
break;
1.48 +1 -10 ws-axis/c/src/soap/SoapDeSerializer.cpp
Index: SoapDeSerializer.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/soap/SoapDeSerializer.cpp,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -r1.47 -r1.48
--- SoapDeSerializer.cpp 19 May 2004 03:27:29 -0000 1.47
+++ SoapDeSerializer.cpp 20 May 2004 03:48:03 -0000 1.48
@@ -298,16 +298,7 @@
//if (0 != strcmp(m_pNode->m_pchNameOrValue, pName)) return AXIS_FAIL;
if (0 != strcmp(m_pNode->m_pchNameOrValue, pName))
{
- if(0 != strcmp(m_pNode->m_pchNameOrValue, "Fault"))
- {
- m_nStatus = AXIS_FAIL;
- THROW_AXIS_EXCEPTION(AXISC_UNKNOWN_ELEMENT_EXCEPTION);
- }
- else//Body contains soap fault
- //iResult = getFault();
- THROW_AXIS_EXCEPTION(AXISC_SOAP_FAULT_EXCEPTION);
-
-
+ THROW_AXIS_EXCEPTION(AXISC_NODEVALUE_MISMATCH_EXCEPTION);
}
/* we can check the namespace uri too here. Should we ?*/
m_pNode = NULL; /*This is to indicate that node is identified and used */
1.47 +9 -5 ws-axis/c/src/soap/SoapSerializer.cpp
Index: SoapSerializer.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/soap/SoapSerializer.cpp,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -r1.46 -r1.47
--- SoapSerializer.cpp 18 May 2004 04:32:31 -0000 1.46
+++ SoapSerializer.cpp 20 May 2004 03:48:03 -0000 1.47
@@ -445,11 +445,15 @@
int SoapSerializer::createSoapFault(const AxisChar* sLocalName,
const AxisChar* sURI)
{
- SoapFault* pFault = new SoapFault();
- setSoapFault(pFault);
- pFault->setLocalName(sLocalName);
- pFault->setPrefix(getNamespacePrefix(sURI));
- pFault->setUri(sURI);
+ SoapFault* pSoapFault = new SoapFault();
+ setSoapFault(pSoapFault);
+ pSoapFault->setLocalName(sLocalName);
+ pSoapFault->setPrefix(getNamespacePrefix(sURI));
+ pSoapFault->setUri(sURI);
+ pSoapFault->setFaultcode("Server");
+ pSoapFault->setFaultstring("Service thrown exception");
+ pSoapFault->setFaultactor("");
+
return AXIS_SUCCESS;
}