我目前仅限于 JDK17。我使用 maven 构建,依赖项需要进一步的 jackson 2.15.0 jar,该 jar 是一个多版本,包含 Java 11、17 和 19 的版本。我正在构建一个 WAR 文件,但在部署到(webprofile)服务器(TomEE 9.1.1、Glassfish v6.2.5),部署失败并出现以下错误:
访问时出现异常 META-INF/versions/19/com/fasterxml/jackson/core/io/doubleparser/FastIntegerMath.class 大小 5112 java.lang.IllegalArgumentException:不支持的类 文件主要版本 63
63 当然是 Java 19。
Glassfish 7.0.1 另一方面,可以工作,尽管部署速度非常慢(在本地主机上)。
我读到现代服务器可以处理 MRjar(例如:最新的码头、glassfish 等)。我找不到任何有效的 Maven 属性(编译器源/目标/版本)、排除或强制执行器(例如:requireJavaVersion),那么我如何成功地将 WAR 部署到远程 TomEE(如果可能的话)?
您可以尝试显式添加具有提供范围的依赖项是否有效吗?它标记依赖关系应该由容器提供,因此服务器将使用自己的版本,该版本应该可以工作。
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.15.0</version>
<scope>provided</scope>
</dependency>