blob: 54908d60e1fa2dd3d5ae4d32336bf6d1e354b105 [file] [log] [blame]
#include "EnumerationWS.hpp"
#include <stdlib.h> // For malloc(), calloc(), strdup() and free()
#include <iostream>
#define WSDL_DEFAULT_ENDPOINT "http://localhost:80/axis/enumeration"
static void usage( char * programName, char * defaultURL)
{
cout << "Usage:" << endl
<< programName << " [-? | service_url] " << endl
<< " -? Show this help." << endl
<< " service_url URL of the service." << endl
<< " Default service URL is assumed to be " << defaultURL << endl;
}
int main( int argc, char * argv[])
{
EnumerationWS * ws;
char endpoint[256];
int returnValue = 1; // Assume Failure
Type1 * input = NULL;
Type1 * result = NULL;
bool bSuccess = false;
int iRetryIterationCount = 3;
sprintf( endpoint, "%s", WSDL_DEFAULT_ENDPOINT);
if( argc > 1)
{
// Watch for special case help request
// Check for - only so that it works for
//-?, -h or --help; -anything
if( !strncmp( argv[1], "-", 1))
{
usage( argv[0], endpoint);
return 2;
}
sprintf( endpoint, argv[1]);
}
do
{
try
{
ws = new EnumerationWS( endpoint, APTHTTP1_1);
input = new Type1();
xsd__int iEnumInt = ENUMTYPEINT_0;
input->setatt_enum_string( "one");
input->setenum_string( "one");
input->setenum_int( &iEnumInt);
input->setatt_enum_int( ENUMTYPEINT_1);
input->setatt_enum_kind( "CHEQUE");
ws->setTransportProperty( "SOAPAction", "enumeration#getInput");
result = ws->getInput( input);
cout << "Result" << endl;
if( result == NULL)
{
cout << " result = NULL" << endl;
}
else
{
cout << "att_enum_int " << result->getatt_enum_int() << endl;
cout << "att_enum_string " << result->getatt_enum_string() << endl;
cout << "enum_int " << result->getenum_int() << endl;
cout << "enum_string " << result->getenum_string() << endl;
cout << "enum_kind " << result->getatt_enum_kind() << endl;
returnValue = 0; // Success
}
bSuccess = true;
}
catch( AxisException & e)
{
bool bSilent = false;
if( e.getExceptionCode () == CLIENT_TRANSPORT_OPEN_CONNECTION_FAILED)
{
if( iRetryIterationCount > 1)
{
bSilent = true;
}
}
else
{
iRetryIterationCount = 0;
}
if( !bSilent)
{
cerr << e.what () << endl;
}
}
catch( ...)
{
cerr << "Unknown Exception occured." << endl;
}
try
{
delete ws;
delete input;
delete result;
}
catch( exception & exception)
{
cout << "Exception when cleaning up: " << exception.what() << endl;
}
catch( ...)
{
cout << "Unknown exception when cleaning up: " << endl;
}
iRetryIterationCount--;
} while( iRetryIterationCount > 0 && !bSuccess);
cout << "---------------------- TEST COMPLETE -----------------------------" << endl;
cout << "successful" << endl;
return returnValue;
}