maven - 如何设置java类加载器PARENT_LAST

标签 maven websphere classloader websphere-6.1 wsadmin

我有一个 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/

相关文章:

java - 这是什么 Maven 错误? "Plugin execution not covered by lifecycle configuration...)"

android-maven-plugin 和资源过滤

java - Jersey URISchemeScanner

Java代码热替换|使用JDK的Java编译器或groovy重新加载

java - classLoader 无法加载实现此模块之外的类的类

java - 正确定义java动态类加载

java - 一种只下载 java 1.6 兼容库的方法

maven - Jenkins Pipeline Maven Artifactory 插件无法从中央 Maven 存储库解析 Artifact

java - 应用程序未在 websphere 8.5.5 中启动,但在 tomcat 中运行良好

java - 在 EAR 项目中,EJB 在部署时出现两次