in src/engine/Axis.cpp [331:452]
int initialize_module (int bServer)
{
start_initializing();
int status = AXIS_SUCCESS;
try
{
if (g_uModuleInitialize == 0)
{
// Read config file and enable trace....this should be first thing that is done!!!
// Read from the configuration file
if( g_pConfig != NULL)
g_pConfig = new AxisConfig( g_pConfig);
else
g_pConfig = new AxisConfig();
status = g_pConfig->readConfFile ();
if (status == AXIS_SUCCESS)
{
// One can also start trace via Axis::startTrace(). If that has been done,
// ignore the config file.
if (!AxisTrace::isLoggingEnabled())
{
AxisTrace::setLogFilter(g_pConfig->getAxisConfProperty(AXCONF_LOGFILTER));
if (bServer)
AxisTrace::startTrace(g_pConfig->getAxisConfProperty(AXCONF_LOGPATH));
else
AxisTrace::startTrace(g_pConfig->getAxisConfProperty(AXCONF_CLIENTLOGPATH));
}
string configProperties = g_pConfig->toString();
AxisTrace::writeTrace(configProperties.c_str(), configProperties.length());
}
// The entry log must start here - may revisit so as to start earlier.
logEntryEngine("initialize_module")
// order of these initialization method invocation should not be changed
AxisEngine::m_bServer = bServer;
AxisUtils::initialize ();
WSDDKeywords::initialize ();
SoapKeywordMapping::initialize ();
TypeMapping::initialize ();
URIMapping::initialize ();
SoapFault::initialize ();
ModuleInitialize ();
if (bServer) // no client side wsdd processing at the moment
{
if (status == AXIS_SUCCESS)
{
try
{
XMLParserFactory::initialize();
}
catch (AxisException& e)
{
logRethrowException()
throw AxisEngineException(e.getExceptionCode(), e.what());
}
char *pWsddPath = g_pConfig->getAxisConfProperty(AXCONF_WSDDFILEPATH);
try
{
if (AXIS_SUCCESS != g_pWSDDDeployment->loadWSDD (pWsddPath))
status = AXIS_FAIL;
}
catch (AxisException& e)
{
logRethrowException()
throw AxisEngineException(e.getExceptionCode(), e.what());
}
}
else
status = AXIS_FAIL;
}
else if (bServer == 0) // client side module initialization
{
if (status == AXIS_SUCCESS)
{
XMLParserFactory::initialize();
SOAPTransportFactory::initialize();
char * pClientWsddPath = g_pConfig->getAxisConfProperty(AXCONF_CLIENTWSDDFILEPATH);
// May be there is no client side handlers configured. So may not have CLIENTWSDDFILEPATH entry in axiscpp.conf
if (pClientWsddPath)
if (AXIS_SUCCESS != g_pWSDDDeployment->loadWSDD (pClientWsddPath))
status = AXIS_FAIL;
}
}
else
{
/* Ok if we can't read config file */
status = AXIS_SUCCESS;
}
g_isRunning = true;
logExitWithReturnCode(status)
}
else if (AxisEngine::m_bServer != bServer)
{
throw AxisEngineException(SERVER_ENGINE_EXCEPTION);
}
}
catch (...)
{
done_initializing();
throw;
}
++g_uModuleInitialize;
done_initializing();
return status;
}