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;
   }