【发布时间】:2022-02-16 21:15:59
【问题描述】:
我正在尝试从 2.35 升级到 Jersey 3x 以使用 Jetty 9x 嵌入式,以便我可以使用 3x 中支持的异步服务器 API。当前的maven pom.xml是:
<properties>
<jersey.version>2.35</jersey.version>
<!--jersey.version>3.0.0</jersey.version-->
<jetty.version>9.4.28.v20200408</jetty.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!--Test Dependencies-->
</dependencies>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>${jetty.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>${jetty.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlets</artifactId>
<version>${jetty.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>${jersey.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
<version>${jersey.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.inject</groupId>
<artifactId>jersey-hk2</artifactId>
<version>${jersey.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
现在,当我将版本更改为 3.0.0 时,我得到了依赖错误。我正在尝试遵循 jersey 用户指南的 Modules and dependencies 第 2 章,但我无法解决正确的依赖关系。
在 Jersey 3x 的 POM 中要引用的正确球衣依赖项是什么?
【问题讨论】:
-
这行不通。您可能必须使用 Jetty 11。Jersey 3.x 使用新的 Jakarta 命名空间。我认为 Jetty 会在 11 日开始支持这一点。
-
感谢 Paul,这很不幸,我们目前支持 Java 8,因此迁移到 Jetty 11x 将是一个问题。您可以将您的评论作为答案,我将其标记为正确。
-
@kimathie Jetty 9 可能会在 2022 年 3 月停止 EOL,届时 Java 8 支持将从 Premier 转移到 Extended(并且 Java 运行时的所有更新都被锁定在支持合同之后,这意味着不再有可公开访问的 JDK /JRE 运行时)。在这个过渡点,过去的每个 Jetty 版本也都已停产。
标签: jersey jax-rs jetty embedded-jetty jersey-3.0