Если вы хотите использовать файл конфигурации, вы можете разместить его в следующем месте:
axis2/WEB-INF/services/classes/config-file.xml
Вы можете получить доступ к этому файлу в коде с помощью загрузчика классов AxisService, который доступен во время запуска (ConfigurationContext)configctx, сервис AxisService).startUp () запускается при запуске службы (после развертывания или после перезапуска контейнера).
import org.apache.axis2.engine.ServiceLifeCycle;
public class LifeCycleImpl implements ServiceLifeCycle {
public void startUp(ConfigurationContext configctx, AxisService service) {
InputStream in = service.getClassLoader().getResourceAsStream("config-file.xml");
//Extract your database config from the input stream
//Create database connection
//Store the connection as a service parameter using service.AddParameter
}
Во время использования метода init(ServiceContext serviceContext)
в классе реализации службы вы можете получить доступ к соединению с базой данных.создается во время ServiceLifeCycle.startUp()
с помощью метода ServiceContext.getAxisService().getParamterValue()
.
Примечание : Вы должны указать класс реализации ServiceLifeCycle в файле services.xml
вашей службы в качестве атрибута class
дляservice
tag:
<!-- The class attribute defines the hook into the Service lifecycle methods
startUp and shutDown -->
<service name="YourService" class="com.macima.webservice.LifeCycleImpl">
<!--Specify the web service's implementation class -->
<parameter name="ServiceClass">com.macima.webservice.ServiceImpl</parameter>
<!--Declare methods exposed by the web service-->
<operation name="getSomething">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</operation>
</parameter>
</service>
При таком подходе ваш файл конфигурации хранится вне файла aar
.Преимущество заключается в том, что вы можете продвигать один и тот же файл aar
в различных тестовых средах, выбирая соответствующие параметры для каждой среды в конфигурационном файле для конкретной среды.Кроме того, вы можете редактировать файл конфигурации, не открывая файл aar
.