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精力充沛的例子。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章