Jersey用户指南(2)

第二章。模块和依赖关系

表的内容

2.1。Java SE的兼容性
2.2。介绍球衣依赖性
2.3。常见的球衣用例
2.3.1。Glassfish上基于Servlet的应用程序
2.3.2。基于Servlet的服务器端应用程序
2.3.3。客户端应用程序在JDK
2.3.4。服务器端应用程序容器的支持
2.4。Jersey 的模块列表

2.1。Java SE的兼容性

直至Jersey 2.6,Jersey都是使用java SE 6 来编译的,从Jersey 2.7开始,几乎所有的Jersey组件都是使用 java SE 7来编译。 所以说如果你使用最新的Jersey,你至少使用java SE 7 才能编译和运行你的程序。目前只有core-common和core-client模块仍然是使用java SE 6来编译的

2.2。介绍Jersey的依赖性

Jersey是使用Apache Maven来集成和构建的。Non-snapshot Jersey版本发布到了 Central Maven Repository (Maven的中央存储库),同时Jersey也发布到了 Java.Net Maven repositories (Java.Net库),改库同时还包含了Jersey的快照版本。如果你想测试最新的发布版本,你可以从 Java.Net Snapshots Maven repository 检出项目

使用和依赖Jersey模块创建的应用程序,也需要依赖Jersey依赖的三方模块。Jersey被设计为一个可插入的组件结构 ,因此不同的应用程序需要不同的Jersey模块。这也意味着不同应用程序因为依赖的Jersey模块不同,而他们的外部依赖也有所不同

开发人员使用Maven或者Maven-aware构建项目会比使用ant或者其他不兼容Maven的工更容易引入和管理依赖。本文介绍Maven和non-maven开发者如何在他们的程序中使用Jersey。ant开发者使用Ant Tasks for Maven 会更加方便一些。

2.3。常见的Jersey用例

2.3.1。Glassfish上基于Servlet的应用程序

如果您正在使用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.25.1</version>
    <scope>provided</scope>
</dependency>
<!-- if you are using Jersey client specific features without the server side -->
<dependency>
    <groupId>org.glassfish.jersey.core</groupId>
    <artifactId>jersey-client</artifactId>
    <version>2.25.1</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.25.1</version>
</dependency>
<!-- Required only when you are using JAX-RS Client -->
<dependency>
    <groupId>org.glassfish.jersey.core</groupId>
    <artifactId>jersey-client</artifactId>
    <version>2.25.1</version>
</dependency>

2.3.3。使用JDK的客户端应用程序

纯的Jersey客户端只是JDK上运行的一部分,Jax-rs规范依赖取决于具体的客户端需求。对于客户端有很多的模块可以添加,例如Grizzly或者Apache或者Jetty连接器(详见下面的依赖)。Jersey客户端在默认情况下使用最简单的JDK(使用HttpUrlConnection)。详情见第五章,客户端API。

<dependency>
    <groupId>org.glassfish.jersey.core</groupId>
    <artifactId>jersey-client</artifactId>
    <version>2.25.1</version>
</dependency>

目前可用的连接器:

<dependency>
    <groupId>org.glassfish.jersey.connectors</groupId>
    <artifactId>jersey-grizzly-connector</artifactId>
    <version>2.25.1</version>
</dependency>

<dependency>
    <groupId>org.glassfish.jersey.connectors</groupId>
    <artifactId>jersey-apache-connector</artifactId>
    <version>2.25.1</version>
</dependency>

<dependency>
    <groupId>org.glassfish.jersey.connectors</groupId>
    <artifactId>jersey-jetty-connector</artifactId>
    <version>2.25.1</version>
</dependency>

2.3.4。服务器端应用程序容器的支持

除了基于servlet部署的标准的jax-rs适用于所有servlet,其他都需要servlet2.5以上版本。Jersey支持部署以下容器:Grizzly 2 (HTTP and Servlet)、JDK HTTP服务器、简单的HTTP服务器和Jetty HTTP服务器。本章只提供了maven的依赖关系,更多信息你可以在第四章,应用程序部署和运行时环境查看

<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-grizzly2-http</artifactId>
    <version>2.25.1</version>
</dependency>

<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-grizzly2-servlet</artifactId>
    <version>2.25.1</version>
</dependency>

<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-jdk-http</artifactId>
    <version>2.25.1</version>
</dependency>

<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-simple-http</artifactId>
    <version>2.25.1</version>
</dependency>

<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-jetty-http</artifactId>
    <version>2.25.1</version>
</dependency>

<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-jetty-servlet</artifactId>
    <version>2.25.1</version>
</dependency>

2.4。Jersey的模块列表

以下章节概述所有球衣模块及其依赖关系与相应的二进制文件(遵循一个链接下载的模块名称获取完整的设置依赖项)。

表2.1。Jersey的核心

Jersey的核心
jersey-client Jersey核心客户端实现
jersey-common Jersey核心公共包
jersey-server Jersey核心服务器实现

表2.2。Jersey的容器

Jersey的容器
jersey-container-grizzly2-http Grizzly 2 Http容器。
jersey-container-grizzly2-servlet Grizzly 2 Servlet容器。
jersey-container-jdk-http JDK Http容器
jersey-container-jetty-http Jetty Http容器
jersey-container-jetty-servlet Jetty Servlet容器
jersey-container-netty-http Netty 的Http容器。
jersey-container-servlet Jersey Servlet核心3。x实现
jersey-container-servlet-core Jersey Servlet核心2。x实现
jersey-container-simple-http 简单的Http容器
jersey-gf-ejb Jersey EJB GlassFish集成

表2.3。Jersey连接器

Jersey连接器
jersey-apache-connector Jersey客户端传输通过Apache
jersey-grizzly-connector 通过 Grizzly Jersey客户端传输
jersey-jetty-connector Jersey客户端通过码头运输
jersey-netty-connector Jersey客户端通过netty的运输

表2.4。Jersey媒体

Jersey媒体
jersey-media-jaxb jax - rs特性基于jax - b。
jersey-media-json-jackson Jersey JSON Jackson(2. x)实体供应商支持模块。
jersey-media-json-jackson1 Jersey JSON Jackson(1. x)实体供应商支持模块。
jersey-media-json-jettison Jersey JSON Jettison实体供应商支持模块。
jersey-media-json-processing Jersey JSON-P(JSR 353)实体提供者支持代理模块。
jersey-media-kryo Jersey/ jax - rs消息体使用Kryo序列化框架的撰写器和阅读器
jersey-media-moxy Jersey JSON实体提供者支持模块基于EclipseLink精力充沛。
jersey-media-multipart Jersey 多部分实体供应商支持模块。
jersey-media-sse Jersey 服务器发送事件实体供应商支持模块。

表2.5。Jersey的扩展

Jersey 的扩展
jersey-bean-validation Jersey 扩展模块支持Bean验证(jsr - 349)的API。
jersey-cdi1x Jersey CDI 1.1集成
jersey-cdi1x-ban-custom-hk2-binding Jersey CDI集成这个模块定制HK2禁用绑定
jersey-cdi1x-servlet Jersey CDI 1。x Servlet支持
jersey-cdi1x-transaction Jersey CDI 1。x事务支持
jersey-cdi1x-validation Jersey CDI 1。x Bean验证的支持
jersey-declarative-linking Jersey 支持声明式超链接。
jersey-entity-filtering Jersey 扩展模块支持实体数据过滤。
jersey-metainf-services Jersey 扩展模块启用自动登记的jax - rs提供者(MBW / MBR / EM)通过meta - inf /服务机制。
jersey-mvc Jersey 扩展模块提供支持MVC。
jersey-mvc-bean-validation Jersey 在MVC扩展模块支持Bean验证。
jersey-mvc-freemarker Jersey Freemarker模板扩展模块提供支持。
jersey-mvc-jsp Jersey 西扩展模块支持JSP模板。
jersey-mvc-mustache Jersey 西扩展模块支持胡子模板。
jersey-proxy-client Jersey 西扩展模块提供支持(基于代理的)高级客户端API。
jersey-rx-client Jersey 反应客户扩展实现。
jersey-rx-client-guava Jersey 反应客户端番石榴(ListenableFuture)提供者。
jersey-rx-client-java8 Jersey 反应客户端Java 8(CompletionStage)提供者。
jersey-rx-client-jsr166e Jersey 反应客户- jsr - 166 e,pre-Java 8日(CompletableFuture)提供者。
jersey-rx-client-rxjava Jersey 反应客户端RxJava(可见的)提供者。
jersey-servlet-portability 库,使编写web应用程序运行与Jersey 1。x和Jersey 2。x servlet容器。
jersey-spring3 Jersey 扩展模块支持Spring 3集成。
jersey-wadl-doclet doclet生成resourcedoc xml文件:这个文件包含资源类的javadoc文档,这可用于扩展生成wadl提供有用的文档。
jersey-weld2-se 焊接2。x SE的支持

表2.6。Jersey 测试框架

泽测试框架
container-runner-maven-plugin 容器跑maven插件提供启动和停止一个容器(目前,Weblogic,支持Tomcat和Glassfish4)。将应用程序部署到这个容器或重复部署和测试应用程序的容器。
custom-enforcer-rules 泽测试框架Maven项目
jersey-test-framework-core 泽测试框架核心
jersey-test-framework-provider-bundle 泽测试框架供应商包
jersey-test-framework-provider-external 泽测试框架——外部容器
jersey-test-framework-provider-grizzly2 泽测试框架——Grizzly2容器
jersey-test-framework-provider-inmemory 泽测试框架——InMemory容器
jersey-test-framework-provider-jdk-http 泽测试框架- JDK HTTP容器
jersey-test-framework-provider-jetty 泽测试框架- Jetty HTTP容器
jersey-test-framework-provider-netty 泽测试框架,网状的容器
jersey-test-framework-provider-simple 泽测试框架——简单的HTTP容器
jersey-test-framework-util 泽测试框架跑龙套
memleak-test-common 泽测试框架伞项目

表2.7。Jersey 测试框架供应商

泽测试框架供应商
jersey-test-framework-provider-bundle 泽测试框架供应商包
jersey-test-framework-provider-external 泽测试框架——外部容器
jersey-test-framework-provider-grizzly2 泽测试框架——Grizzly2容器
jersey-test-framework-provider-inmemory 泽测试框架——InMemory容器
jersey-test-framework-provider-jdk-http 泽测试框架- JDK HTTP容器
jersey-test-framework-provider-jetty 泽测试框架- Jetty HTTP容器
jersey-test-framework-provider-netty 泽测试框架,网状的容器
jersey-test-framework-provider-simple 泽测试框架——简单的HTTP容器

表2.8。Jersey G lassfish包

Jersey Glassfish包
jersey-gf-ejb 泽EJB GlassFish集成

表2.9。安全

安全
oauth1-client 模块增加了OAuth 1支持Jersey客户端。
oauth1-server 1模块增加了OAuth支持泽服务器
oauth1-signature OAuth1签名模块
oauth2-client 模块增加了OAuth 2支持Jersey客户端

表2.10。Jersey 的例子

Jersey 的例子
additional-bundle OSGi Helloworld Webapp,额外的包
alternate-version-bundle OSGi Helloworld应用——替代版本包
程序集 泽实例共享的组件类型。
bean-validation-webapp 泽Bean验证(jsr - 349)的例子。
书签 泽书签的例子。
bookmark-em 使用EntityManager球衣书签的例子。
bookstore-webapp 泽MVC书店的例子。
包 OSGi HttpService例子因为包
cdi-webapp 泽CDI的例子。
剪贴板 泽剪贴板的例子。
clipboard-programmatic 泽编程资源API剪贴板的例子。
declarative-linking 声明式超链接——球衣样本
entity-filtering 泽实体数据过滤的例子。
entity-filtering-security 泽实体数据过滤安全的例子。
entity-filtering-selectable 泽实体数据过滤可选择的例子。
异常映射 球衣的例子显示异常映射器。
extended-wadl-webapp 扩展WADL的例子。
feed-combiner-java8-webapp 泽西岛的Web应用程序(Servlet)父POM例子。
flight-management-webapp 泽西飞行管理演示Web应用程序的例子
freemarker-webapp 泽Freemarker例子。
功能测试 泽西岛的例子
功能测试 OSGi HttpService例子因为
groovy Groovy的球衣
helloworld 泽注释资源类“Hello world”示例。
helloworld-benchmark 泽基准“Hello World”示例。
helloworld-netty 泽“Hello world”示例在网状的容器。
helloworld-programmatic 泽API编程资源“Hello world”示例。
helloworld-pure-jax-rs 只使用标准jax - rs API的例子和轻量级的HTTP服务器捆绑在JDK。
helloworld-spring-annotations 春天3集成球衣的例子
helloworld-spring-webapp 春天3集成球衣的例子
helloworld-webapp 泽注释资源类“Hello world”示例。
helloworld-weld 泽注释资源类与焊接支持“Hello world”示例。
http-patch 球衣的例子通过jax - rs实现通用补丁支持读者拦截器。来自杰拉德•戴维森的博客条目:http://kingsfleet.blogspot.co.uk/2014/02/transparent -补丁——支持jax - rs 20. - html
http-trace 泽HTTP跟踪支持的例子。
https-clientserver-grizzly 泽在灰熊HTTPS客户机/服务器的例子。
https-server-glassfish 泽HTTPS服务器GlassFish的例子。
java8-webapp Java 8个类型应用的例子。
jaxb 泽JAXB示例。
jaxrs-types-injection 泽jax - rs注入类型的例子。
jersey-ejb 泽西岛的Web应用程序(Servlet)父POM例子。
json-jackson 泽JSON与杰克逊的例子。
json-jackson1 泽西与杰克逊JSON 1。x的例子。
json-jettison 泽西与抛弃JAXB示例JSON。
json-moxy 泽JSON与精力充沛的例子。
json-processing-webapp 泽JSON-P(JSR 353)的例子。
json-with-padding 泽JSON与填充的例子。
lib-bundle OSGi Helloworld应用——自由包
managed-beans-webapp 泽托管bean的Web应用程序的例子。
托管客户机 泽托管客户机示例。
managed-client-simple-webapp 泽西岛的Web应用程序(Servlet)父POM例子。
managed-client-webapp 泽托管客户端web应用程序的例子。
monitoring-webapp 泽西岛的Web应用程序(Servlet)父POM例子。
multipart-webapp 泽多部分的例子。
oauth-client-twitter Twitter客户端使用OAuth 1支持球衣,从主时间轴检索微博注册Twitter帐户。
oauth2-client-google-webapp Google数据API检索示例使用OAuth2进行身份验证和授权
osgi-helloworld-webapp 泽西岛的例子
osgi-http-service OSGi HttpService例子因为
重新加载 泽西岛资源配置重载的例子。
rx-client-java8-webapp 泽反应客户扩展(Java8)应用例子。
rx-client-webapp 泽反应客户扩展应用的例子。
server-async 泽jax - rs异步服务器端例子。
server-async-managed 使用自定义球衣球衣jax - rs异步服务器端例子执行人提供者。
server-async-standalone 独立的球衣jax - rs异步服务器端处理的例子。
server-async-standalone-client 独立的球衣jax - rs异步服务器端处理示例客户机。
server-async-standalone-webapp 独立的球衣jax - rs异步服务器端处理示例web应用程序。
server-sent-events 泽服务器发送的事件的例子。
servlet3-webapp Jersey Servlet 3例失踪在web Servlet类。xml文件
shortener-webapp 泽搅面机应用(MVC + Bean验证)。
简单的控制台 球衣简单的控制台的例子
微线图 泽西岛的例子
sse-item-store-webapp 泽SSE-based项存储的例子。
sse-twitter-aggregator 泽SSE Twitter消息聚合器的例子。
system-properties-example 泽西岛系统属性的例子。
音频发生器 泽西岛的例子
war-bundle OSGi Helloworld Webapp战争包
webapp-example-parent 泽西岛的Web应用程序(Servlet)父POM例子。
xml-moxy 泽XML精力充沛的例子。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜雪天晴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值