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

Deploying multiple release .jar on Oracle WebLogic Server

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

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

因此,它在 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 Unable to parse class file:... (then a long path name into the META-INF/versions/9 directory)

我们需要做什么特别的事情来完成这项工作吗?我会接受以下任何内容:

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

谢谢!

JEP 238 来自 Java 9 而 WebLogic Server 不 运行 与 Java 9.

进一步调查后,

BEA-160248 Unable to parse class file...

消息是转移注意力的信息。在解决了其他不相关的问题后,尽管日志中出现了这些错误消息,但应用程序确实会根据需要进行部署和工作。

我想根据Doc ID 2629550.1补充一下:

This message is harmless and can be ignored.