как установить Java class loader PARENT LAST
У меня есть веб-приложение spring mvc, которое мне нужно изменить загрузчик классов. Мне нужно поменять загрузчик Class, чтобы быть равным на parent_. Я использую WAS 6.1 и уже имею сценарий jacl из предыдущего веб-приложения, которое я могу скопировать для выполнения этой работы.
в последнем приложении использовался Apache ant, и они сделали так, чтобы развертывание зависело от запуска сценария jacl.
в моем новом веб-приложении я использую Maven install для создания файла war и am развертывание этого файла war на моем сервере приложений.
Как установить загрузчик классов в PARENT_LAST с помощью maven? Я знаю, как это сделать в консоли, но если бы был способ сделать это с помощью сценариев, было бы неплохо.
также Эта настройка будет помещена где-то в файл war, чтобы при развертывании приложения настройка была подобрана. Этот вопрос исходит из моего непонимания того, как работают сценарии jacl?
спасибо
3 ответов
Если вы только развертываете сам файл WAR, вы не можете контролировать это, но если у вас есть файл WAR в файле EAR, вы можете использовать развертывание.решение xml. Развертывание.XML-файл будет выглядеть примерно так:
<?xml version="1.0" encoding="UTF-8"?>
<appdeployment:Deployment xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:appdeployment="http://www.ibm.com/websphere/appserver/schemas/5.0/appdeployment.xmi" xmi:id="Deployment_1347529484613">
<deployedObject xmi:type="appdeployment:ApplicationDeployment" xmi:id="ApplicationDeployment_1347544766353" startingWeight="99" warClassLoaderPolicy="SINGLE">
<modules xmi:type="appdeployment:WebModuleDeployment" xmi:id="WebModuleDeployment_1347543866613" startingWeight="1" uri="YourWebApp.war" classloaderMode="PARENT_LAST"/>
<classloader xmi:id="Classloader_1347543866613" mode="PARENT_LAST"/>
</deployedObject>
</appdeployment:Deployment>
как только вы закончите, все, что вам нужно сделать, это добавить файл в правильном месте сборки проекта EAR, предполагая, что вы используете src/main/application
что будет src/main/application/META-INF/ibmconfig/cells/defaultCell/applications/defaultApp/deployments/defaultApp/deployment.xml
и построить ухо, используя Maven как обычно.
во время развертывания сервера будет подобран был.
AFAIK нет способа предварительно настроить войну для PARENT_LAST
во время сборки. Политика загрузки классов задается во время развертывания, поэтому способ ее установки зависит от способа развертывания приложения.
изменение политики с помощью скрипта очень проста. Скрипты запускаются с помощью . Фрагмент Jython ниже выполняет эту работу. Его можно легко преобразовать к Jacl.
dep = AdminConfig.getid('/Deployment:app_name/')
depObject = AdminConfig.showAttribute(dep, 'deployedObject')
classldr = AdminConfig.showAttribute(depObject, 'classloader')
AdminConfig.modify(classldr, [['mode', 'PARENT_LAST']])
AdminConfig.save()
Websphere использует развертывание.xml-файл для управления настройками развертывания каждого модуля в файле ear. Вы можете изменить параметр classloader в развертывании.xml по следующему пути:
/MyTestEAR/META-INF/ibmconfig/cells/defaultCell/applications/defaultApp/deployments/defaultApp/deployment.в XML
Я не знаю, как вы можете настроить это в Maven.