猿问

在 Oracle WebLogic Server 上部署多个版本 .jar

我们正在尝试将 Web 服务(.war 文件)部署到 Oracle WebLogic 12.2.1.0.0 服务器上。

例如,.war 包含一些第三方 .jar,log4j-api-2.12.0.jar它们是多个版本的 .jar(根据 JEP 238,包含Multi-Release: true在 MANIFEST.MF 中)。

因此,它在META-INF/versions/9目录中包含一些 Java 9 编译的类。WebLogic 12.2 仅使用 Java 8(通过 WebLogic 管理控制台确认版本为 Java 1.8.0_92)。

据我了解,Java 8 服务器应该不会看到/忽略目录下的任何类META-INF/versions,但这似乎并没有发生。看起来 Oracle WLS 只是扫描整个 .war。

结果,当我们尝试部署 .war 时,我们会收到如下错误:

BEA-160248 无法解析类文件:...(然后是META-INF/versions/9目录中的长路径名)

为了使这项工作顺利进行,我们需要做一些特别的事情吗?我会接受以下任何内容:

  • 以某种方式配置 WLS 以忽略这些META-INF/versions/9

  • 配置 Maven 以某种方式构建 .war,而不META-INF/versions/9使用第三方 .jar 中存在的类。

我对涉及每次构建 .war 时手动删除 .war 中的任何内容的答案不感兴趣。另外,我不确定此时是否可以降级到早期版本的第 3 方 .jar。Log4j2,可能可以......但还有其他。

谢谢!


撒科打诨
浏览 185回答 2
2回答

达令说

JEP 238 来自 Java 9,WebLogic Server 不能与 Java 9 一起运行。

拉风的咖菲猫

进一步研究后发现BEA-160248 无法解析类文件...消息是转移注意力的东西。解决其他不相关的问题后,尽管日志中出现这些错误消息,应用程序仍会根据需要进行部署和工作。

繁星coding

我想根据Doc ID 2629550.1添加:此消息无害,可以忽略。
随时随地看视频慕课网APP

相关分类

Java
我要回答