我正在 WebLogic 节点中部署 EAR,其中有许多 jar 在引导程序 (startWeblogicServer.bat) 类路径中定义。问题是我的 ear 和引导程序包含相同 jar 的不同版本,不仅如此,某些 jar 还包含提取的第三方库,这些库的版本也与 WebLogic 引导程序 jar 不同,从而导致各种类路径错误。
我知道您可以在 EAR 应用程序 xml 中设置首选 jar,但是,对于包含提取的第三方库的 jar,从理解所有依赖关系的角度来看,解决这个问题可能非常繁琐。
我需要采取正确的方法吗?我的想法是否错误?如能得到任何帮助,我将不胜感激!
到目前为止,推荐使用 prefer-web-inf-classes,但由于我没有部署 WAR,所以无法使用。此外,我们目前正在使用 prefer-application-packages,但仍然存在上述问题...还有其他建议吗?谢谢!
答案1
我不知道它是否可以帮助你,但是你可以在 java 命令行中直接定义一个在 java 虚拟机加载 weblogic 类之前(以及在应用程序部署之前)要解析的类路径。
来自 java 文档:
-Xbootclasspath/p:path 指定目录、JAR 档案和 ZIP 档案的冒号分隔路径,将其放在默认引导类路径前面。注意:不应部署使用此选项来覆盖 rt.jar 中的类的应用程序,因为这样做会违反 Java 2 运行时环境二进制代码许可证。
通常情况下,您不应该在同一个 JVM 中使用同一个库的不同版本...如果有这种需要,您可以创建不同的 WL 服务器并安装不同的库