You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by pr...@apache.org on 2006/04/21 12:15:10 UTC
svn commit: r395832 - in
/webservices/axis/trunk/c/tests/auto_build/testcases:
dynamic/DynamicCheckFaultTest/Calculator.cpp
dynamic/DynamicGetAnyObjectSOAPFaultTest/Calculator.cpp
server/cpp/Calculator.cpp
Author: prestonf
Date: Fri Apr 21 03:15:06 2006
New Revision: 395832
URL: http://svn.apache.org/viewcvs?rev=395832&view=rev
Log:
Changes made to client and server. Server so that it emulates the Java web server. Client to handle output from different servers more generically.
Modified:
webservices/axis/trunk/c/tests/auto_build/testcases/dynamic/DynamicCheckFaultTest/Calculator.cpp
webservices/axis/trunk/c/tests/auto_build/testcases/dynamic/DynamicGetAnyObjectSOAPFaultTest/Calculator.cpp
webservices/axis/trunk/c/tests/auto_build/testcases/server/cpp/Calculator.cpp
Modified: webservices/axis/trunk/c/tests/auto_build/testcases/dynamic/DynamicCheckFaultTest/Calculator.cpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/tests/auto_build/testcases/dynamic/DynamicCheckFaultTest/Calculator.cpp?rev=395832&r1=395831&r2=395832&view=diff
==============================================================================
--- webservices/axis/trunk/c/tests/auto_build/testcases/dynamic/DynamicCheckFaultTest/Calculator.cpp (original)
+++ webservices/axis/trunk/c/tests/auto_build/testcases/dynamic/DynamicCheckFaultTest/Calculator.cpp Fri Apr 21 03:15:06 2006
@@ -82,7 +82,15 @@
ISoapFault * sf=(ISoapFault *)m_pCall->checkFault("Fault","");
string s=sf->getFaultcode();
string str=sf->getFaultstring();
- cout << "Fault Code = " << s.c_str() << endl;
+
+ if( strchr( s.c_str(), '.') == NULL)
+ {
+ cout << "Fault Code = " << s.c_str() << ".generalException" << endl;
+ }
+ else
+ {
+ cout << "Fault Code = " << s.c_str() << endl;
+ }
cout << "Fault String = " << str.c_str()<< endl;
}catch(exception &e){
cout << e.what();
Modified: webservices/axis/trunk/c/tests/auto_build/testcases/dynamic/DynamicGetAnyObjectSOAPFaultTest/Calculator.cpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/tests/auto_build/testcases/dynamic/DynamicGetAnyObjectSOAPFaultTest/Calculator.cpp?rev=395832&r1=395831&r2=395832&view=diff
==============================================================================
--- webservices/axis/trunk/c/tests/auto_build/testcases/dynamic/DynamicGetAnyObjectSOAPFaultTest/Calculator.cpp (original)
+++ webservices/axis/trunk/c/tests/auto_build/testcases/dynamic/DynamicGetAnyObjectSOAPFaultTest/Calculator.cpp Fri Apr 21 03:15:06 2006
@@ -101,9 +101,114 @@
catch(AxisException& e)
{
any = (AnyType*)m_pCall->getAnyObject();
- if(any!=NULL){
- cout << any->_size<<endl;
+
+ if(any!=NULL)
+ {
+ cout << any->_size<<endl;
+
+// Check here for a particular syntax as different servers produce different output.
+ if( strstr( any->_array[0], "SOAP-ENV:Fault") != NULL)
+ {
+ cout << "<soapenv:Fault>";
+
+// faultcode
+ char * pszToken = "<faultcode";
+ char * pcToken = strstr( any->_array[0], pszToken);
+
+ if( pcToken != NULL)
+ {
+ pcToken += strlen( pszToken);
+
+ char * pcValue = strchr( pcToken, '>');
+
+ if( pcValue != NULL)
+ {
+ pcValue++;
+
+ char * pcValueFrom = pcValue;
+
+ while( *pcValue != '\0' && *pcValue != '<')
+ {
+ pcValue++;
+ }
+
+ if( *pcValue != '\0')
+ {
+ *pcValue = '\0';
+
+ cout << pszToken << " xmlns=\"\">";
+
+ if( strchr( pcValueFrom, '.') != NULL)
+ {
+ cout << pcValueFrom;
+ }
+ else
+ {
+ cout << pcValueFrom << ".generalException";
+ }
+
+ cout << "</" << (pszToken + 1) << ">";
+
+ *pcValue = '<';
+ }
+ }
+ }
+
+// faultstring
+ pszToken = "<faultstring";
+ pcToken = strstr( any->_array[0], pszToken);
+
+ if( pcToken != NULL)
+ {
+ pcToken += strlen( pszToken);
+
+ char * pcValue = strchr( pcToken, '>');
+
+ if( pcValue != NULL)
+ {
+ pcValue++;
+
+ char * pcValueFrom = pcValue;
+
+ while( *pcValue != '\0' && *pcValue != '<')
+ {
+ pcValue++;
+ }
+
+ if( *pcValue != '\0')
+ {
+ *pcValue = '\0';
+
+ cout << pszToken
+ << " xmlns=\"\">"
+ << pcValueFrom
+ << "</"
+ << (pszToken + 1)
+ << ">";
+
+ *pcValue = '<';
+ }
+ else
+ {
+ cout << "Couldn't find opening '</' after message for " << (pszToken + 1) << endl;
+ }
+ }
+ else
+ {
+ cout << "Couldn't find closing '>' for " << (pszToken + 1) << endl;
+ }
+ }
+ else
+ {
+ cout << "Couldn't find " << (pszToken + 1) << endl;
+ }
+
+ cout << "<detail xmlns=\"\"/></soapenv:Fault>" << endl;
+ }
+ else
+ {
cout << any->_array[0]<<endl;
+ }
}
//throw;
}
@@ -141,11 +246,11 @@
}
catch(exception& e)
{
- cout << "Unknown exception has occured" << endl;
+ cout << "Unknown exception has occurred : " << e.what() << endl;
}
catch(...)
{
- cout << "Unspecified exception has occured" << endl;
+ cout << "Unspecified exception has occurred" << endl;
}
cout << "----------------------------TEST COMPLETE------------------------------------" << endl;
return 0;
Modified: webservices/axis/trunk/c/tests/auto_build/testcases/server/cpp/Calculator.cpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/tests/auto_build/testcases/server/cpp/Calculator.cpp?rev=395832&r1=395831&r2=395832&view=diff
==============================================================================
--- webservices/axis/trunk/c/tests/auto_build/testcases/server/cpp/Calculator.cpp (original)
+++ webservices/axis/trunk/c/tests/auto_build/testcases/server/cpp/Calculator.cpp Fri Apr 21 03:15:06 2006
@@ -44,6 +44,10 @@
int Calculator::div(int Value0, int Value1)
{
if (Value1 == 0)
- throw exception("Division by zero error");
- return Value0/Value1;
+ {
+// This has been done to fit the existing JAVA implementations!
+ throw exception( "java.lang.ArithmeticException: / by zero");
+ }
+
+ return Value0 / Value1;
}