第2章 模块和依赖 - 2.3 常见Jersey示例
优质
小牛编辑
123浏览
2023-12-01
2.3.1 基于 Servlet 的 GlassFish 应用
如果你使用 GlassFish 应用服务,那么你不需要打包任何东西,所有的一切都已经包含在其中了。你只需要在你的应用中声明依赖使用 JAX-RS API 即可。
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.0.1</version>
<scope>provided</scope>
</dependency>
如果你使用特定的功能,那么直接使用特定的 Jersey 依赖即可:
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.23.2</version>
<scope>provided</scope>
</dependency>
<!-- 如果你只使用 Jersey 客户端具体功能而不包含服务端的 -->
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>2.23.2</version>
<scope>provided</scope>
</dependency>
2.3.2 基于 Servlet 的服务端应用
以下依赖可以应用于没有集成任何 JAX-RS 实现的应用服务器(servlet 容器)。需要在部署的应用里面包含 JAX-RS API 和 Jersey 的实现。
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<!-- if your container implements Servlet API older than 3.0, use "jersey-container-servlet-core" -->
<artifactId>jersey-container-servlet</artifactId>
<version>2.23.2</version>
</dependency>
<!-- 仅使用 JAX-RS Client 时添加 -->
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>2.23.2</version>
</dependency>
2.3.3 运行于 JDK 的客户端应用
在 JDK 运行的应用,是否使用 JAX-RS 中客户端的规范完全取决于客户。有各种不同的附加模块可以被添加,例如像 grizzly、Apache 或 jetty 等连接器(见下面依赖)。Jersey 客户端在 JDK 默认运行(HttpUrlConnection)。更多的细节可以参见 Chapter 5, Client API。
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>2.23.2</version>
</dependency>
目前可用的连接器:
<dependency>
<groupId>org.glassfish.jersey.connectors</groupId>
<artifactId>jersey-grizzly-connector</artifactId>
<version>2.23.2</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.connectors</groupId>
<artifactId>jersey-apache-connector</artifactId>
<version>2.23.2</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.connectors</groupId>
<artifactId>jersey-jetty-connector</artifactId>
<version>2.23.2</version>
</dependency>
2.3.4 服务器端应用支持的容器
除了标准的 JAX-RS 基于 Servlet 的部署(Servlet 2.5及以上版本),Jersey 对下面容器提供可编程的部署环境:Grizzly 2(HTTP 和Servlet)、JDK HTTP服务器、简单的 HTTP 服务器,Jetty HTTP 服务器。本章介绍只需要 maven 依赖,更多的内容见Chapter 4. Application Deployment and Runtime Environments 应用部署和运行时环境
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-grizzly2-http</artifactId>
<version>2.23.2</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-grizzly2-servlet</artifactId>
<version>2.23.2</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-jdk-http</artifactId>
<version>2.23.2</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-simple-http</artifactId>
<version>2.23.2</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-jetty-http</artifactId>
<version>2.23.2</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-jetty-servlet</artifactId>
<version>2.23.2</version>
</dependency>