Java WebSphere如何选择文件夹(WEB-INF/lib)中的类加载顺序
我目前面临一个有趣的问题,由于类加载问题,我们的应用程序无法在3/4节点上启动 问题似乎是在a.jar之前加载b.jar。在排除更多故障后,我发现所有节点都以不同的顺序加载jar(通过控制台中的Classpath查看器),而工作节点可能只是侥幸Java WebSphere如何选择文件夹(WEB-INF/lib)中的类加载顺序,java,class,websphere,classloader,Java,Class,Websphere,Classloader,我目前面临一个有趣的问题,由于类加载问题,我们的应用程序无法在3/4节点上启动 问题似乎是在a.jar之前加载b.jar。在排除更多故障后,我发现所有节点都以不同的顺序加载jar(通过控制台中的Classpath查看器),而工作节点可能只是侥幸 WebSphere如何确定已安装应用程序WEB-INF/lib文件夹中的类加载顺序 websphere中未定义JAR的加载顺序。为了解决您的问题,我建议您使用以下选项之一 使用清单类路径设置,按照您希望如何加载的顺序提及jar名称 或 您可以从.jar中
WebSphere如何确定已安装应用程序WEB-INF/lib文件夹中的类加载顺序 websphere中未定义JAR的加载顺序。为了解决您的问题,我建议您使用以下选项之一 使用清单类路径设置,按照您希望如何加载的顺序提及jar名称 或
您可以从.jar中提取类并将其放入
WEB-INF/classes
目录中。然后从lib文件夹中删除a.jar。因为classes
目录将在lib
目录之前加载。有两种方法可以在Websphere中配置类加载器,第一种(默认)是父类加载器,第二种是父类加载器。Websphere中的类加载器是分层的,您可以将其视为一棵树,其中包含:
Java类加载器->ext类加载器->应用程序模块类加载器->web模块类加载器
PARENT_首先从“自顶向下”加载类,从Java类加载器开始,而PARENT_最后从“自下而上”加载类,从web模块类加载器开始。如果您使用的开源库与WAS附带的库冲突,我建议您最后使用PARENT_
有关更多信息,请查看这些资源:
global\a.jar
这样的目录,global
是ear中可用的目录,但在war中不可用。我不确定是否在WEB-INF\lib
中引用jar。不可能使用类路径来控制WEB-INF/lib的顺序(因此这有点不可选择)。感谢您的反馈,但不是我想要的。我最后使用的是parent,因为我首先需要web模块类,但是在web模块web-INF/lib文件夹中,我想知道类是如何加载到该文件夹中的(该文件夹似乎没有文档记录)。