4

我们正在尝试将 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 中删除任何内容的答案不感兴趣。此外,我不确定此时我是否可以降级到早期版本的第 3 方 .jars。Log4j2,可能可以......但还有其他人。

谢谢!

4

3 回答 3

1

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

于 2019-09-11T07:13:28.673 回答
1

进一步调查后,

BEA-160248 无法解析类文件...

消息是一条红鲱鱼。在解决了其他不相关的问题后,尽管日志中出现了这些错误消息,但应用程序确实根据需要进行了部署和工作。

于 2019-09-18T16:13:49.180 回答
1

我想根据Doc ID 2629550.1添加:

此消息是无害的,可以忽略。

于 2021-09-30T17:05:56.987 回答