我有一个 spring mvc web 应用程序,我需要更改类加载器。我需要将类加载器更改为等于 PARENT_LAST。我正在使用 WAS 6.1 并且已经有一个来自以前的 Web 应用程序的 jacl 脚本,我可以复制来完成这项工作。
在上一个应用程序中,使用了 Apache ant,它们所做的是使部署依赖于运行 jacl 脚本。
在我的新 Web 应用程序中,我使用 maven install 创建一个 war 文件并将该 war 文件部署到我的应用程序服务器。
如何使用 maven 将类加载器设置为 PARENT_LAST?我知道如何在控制台中执行此操作,但是如果有一种方法可以使用脚本来执行此操作,那就太好了。
此设置也将放置在 war 文件中的某个位置,以便在部署应用程序时将选择该设置。这个问题来自我对 jacl 脚本的工作方式缺乏了解?
谢谢
最佳答案
如果您仅部署 WAR 文件本身,则无法控制这一点,但如果您的 WAR 文件位于 EAR 文件中,则可以使用 deployment.xml 解决方案。 deployment.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 构建 EAR。在服务器部署期间,这将由 WAS 获取。
关于maven - 如何设置java类加载器PARENT_LAST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21421916/