一、下文中需要的資源地址匯總
- Maven
- Apache Maven網站 http://maven.apache.org/
- Maven下載地址: http://maven.apache.org/download.cgi
- Jersey
- Jersey(JAX-RS 2.1 / Jersey 2.26+)下載:https://jersey.github.io/download.html
- Jersey JAX-RS 2.1 RI bundle bundle contains the JAX-RS 2.1 API jar, all the core Jersey module jars as well as all the required 3rd-party dependencies.
- Jersey 2.26 Examples bundle provides convenient access to the Jersey 2 examples for off-line browsing.
- Jersey 2.26 API Documentation在線DOC:https://jersey.github.io/apidocs/latest/jersey/index.html
- Jersey(JAX-RS 2.1 / Jersey 2.26+)下載:https://jersey.github.io/download.html
- findJAR
- 如果需要其他Jar包,可以去findJAR網站下載:http://www.findjar.com/index.x
二、Jersey是什么?了解一下
Jersey RESTful 框架是開源的RESTful框架, 實現了JAX-RS (JSR 311 & JSR 339) 規范。
它擴展了JAX-RS 參考實現, 提供了更多的特性和工具, 可以進一步地簡化 RESTful service 和 client 開發。
盡管相對年輕,它已經是一個產品級的 RESTful service 和 client 框架。與Struts類似,它同樣可以和hibernate,spring框架整合。
由於Struts2+hibernate+spring整合在市場的占有率太高,所以很少一部分人去關注Jersey。
Jersey1.X的版本是sun公司提供的獨立的jar包,在2.X版本中,已經將jersey放在glassfish下(開源)。

(上圖原文地址:http://dyygusi.iteye.com/blog/2148029?utm_source=tuicool)
Jersey系列文章:
三、學Jersey前,先看看Maven
特別詳細的配置Maven的文章,沒什么可多說的,照做即可:原文地址:https://blog.csdn.net/java_2017_csdn/article/details/77450598/
【下面是我做的Step by Step截屏】
第一步、下載Maven,配置settings.xml文件
Maven下載地址: http://maven.apache.org/download.cgi
下載后放在C根目錄下。打開settings.xml文件編輯。

編輯的目的是讓我們的Maven項目能使用阿里雲提供的Maven鏡像庫提升速度。
如果不做任何配置,默認Maven項目會自動連接使用maven中央庫也是OK的。但是,由於中央庫在國外, 受到中國防火牆等因素影響,其訪問速度很慢, 只有連接到國內鏡像庫(例如阿里雲)才能提高Maven運行速度。
settings.xml文件有2種修改方法:
(1)省事的,把下面“替換settings.xml內容”的內容替換到你本機的settings.xml文件即可,全部替換,原來的文件內容不留。
<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <!-- 配置本地MAVEN倉庫位置,默認在:C:\Users\機器名\.m2\repository <localRepository>D:\Program Files\mvn\</localRepository> ** Eclipse->Windows->Preferences->java->Build Path->Classpath Variables --> <pluginGroups> </pluginGroups> <proxies> </proxies> <servers> </servers> <mirrors> <mirror> <id>aliyun</id> <name>aliyun Maven</name> <mirrorOf>*</mirrorOf> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </mirror> </mirrors> <profiles> </profiles> <activeProfiles> </activeProfiles> </settings>
(2)不懂xml語言,想知道發生了什么的,往下看。啰嗦幾句:
打開settings.xml文件,里面是一個帶格式的xml標准文件。用<!-- -->括住的部分是注釋。例如:
<!-- interactiveMode | This will determine whether maven prompts you when it needs input. If set to false, | maven will use a sensible default value, perhaps based on some other setting, for | the parameter in question. | | Default: true <interactiveMode>true</interactiveMode> -->
去掉注釋,你會發現這個文件真正的內容就下面這么多,畫圈的每個成對的<>標簽中間是具體內容,目前里面都是空。

而我們修改的就是在<mirrors></mirrors>中間添加一段阿里雲提供的Maven鏡像服務器的配置說明:
<mirror> <id>aliyun</id> <name>aliyun Maven</name> <mirrorOf>*</mirrorOf> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </mirror>
添加部分:
<!-- 配置本地MAVEN倉庫位置,默認在:C:\Users\機器名\.m2\repository <localRepository>D:\Program Files\mvn\</localRepository> ** Eclipse->Windows->Preferences->java->Build Path->Classpath Variables --> <mirrors> <mirror> <id>aliyun</id> <name>aliyun Maven</name> <mirrorOf>*</mirrorOf> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </mirror> </mirrors> <profiles> </profiles> <activeProfiles> </activeProfiles> </settings>
添加完畢,文件變成這個樣子:

阿里雲Maven鏡像服務器URL: http://maven.aliyun.com/nexus/content/groups/public/,直接在瀏覽器打開,能看到下面類似的內容就是能連通。
Maven有多方便我還說不好,至少一個顯而易見的好處是項目里用到的Jar包不用到處找了,配好Maven,直接從阿里雲服務器關聯到Project使用。具體本文稍后會介紹。

第二步、配置Eclipse的Maven環境
菜單:Windows→Preference(到現在還記不住這個菜單的面壁1分鍾)
只修改Global Setting,指向本文第一步修改好的settings.xml文件,完成。

想檢查一下是否配置OK了,打開Maven視圖。菜單:Windows→Show View→Other…(到現在還記不住這個菜單的再面壁1分鍾)

可以看見Global Repositories里有2項,central中央庫就是官網(外網)鏡像,aliyun阿里雲就是我們在第一步配置的(國內網)鏡像。

第三步、創建一個Maven Project
菜單:File→New→Other…(到現在還記不住這個菜單的怎么辦?你說怎么辦?)

選擇:創建一個簡單的項目

起名:MavenProj

創建成功。目錄結構:

因為這個步驟必須連接到Maven服務器獲取相關信息, 如果配置和網絡有故障則這個步驟就會出現錯誤!如果出現錯誤請使用瀏覽器檢測是否能夠訪問Maven服務器的URL.
阿里雲Maven鏡像服務器URL: http://maven.aliyun.com/nexus/content/groups/public/,直接在瀏覽器打開看看吧。
第四步、添加Jar包(依賴組件)
這一步原文是這樣寫的↓ 我點了一下Rebuild Index,畫面沒有任何變化。

暫時忽略上面的操作,開始添加Jar包(依賴組件),打開pom.xml文件(工程最下方),原始的文件長這樣:
注意這里有2個Tab:Dependencies 和 pom.xml。其實就是2個視圖,可視化視圖Wizard和源代碼視圖。Eclipse基本在可以可視化的地方都提供了這種便利。

點開Dependencies視圖,點Add,把要添加的jar包名稱輸入,例如:dom4j
注:如果沒有上一步的Rebuild Index,我輸入了dom4j,Search Results框中也沒有同時出現任何內容。
當Rebuild Index了大概20分鍾后,下面的一切才順利。在輸入dom4j的同時,下面的結果框會實時反映出內容。
當然,如果你不想白白浪費20分鍾,基於進入下一步,沒問題。往下看。

如果不想等20分鍾,可以這樣:
打開pom.xml文件,點開源文件視圖,把下面的代碼copy到對應的位置保存即可:
<dependencies> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> </dependencies>
位置↓

注:所以Rebuild Index,只是為了方便生成索引,在Dependencies可視化界面實時反映搜索結果用,並非必須。
只要鏡像服務器的連接沒斷開,直接編輯pom.xml源代碼,只要你沒寫錯,一樣可以引入Jar包。效果一樣一樣的!
在pom.xml文件被保存的瞬間,項目中多了一個Maven Dependencies的目錄結構,里面清楚的寫着jar包和Project已經關聯起來了。
使用Maven關聯的Jar包,保存在本地MAVEN倉庫(默認)C:\Users\機器名\.m2\repository下。
如果你想修改本地Maven倉庫的位置。在C:\apache-maven-3.5.3\conf\settings.xml文件中使用<localRepository>D:\Program Files\mvn\(例子)</localRepository>修改。


結束。
追加第五步、創建Maven Web項目





基本和上面一模一樣,我生成了Web Project,生成了web.xml文件,Error也消除了:


追加第六步、如何添加Jar包的pom.xml源代碼
訪問http://maven.aliyun.com/nexus
在里面輸入你希望引入的Jar包,例如commons-lang,在XML框中,copy這段代碼,放入 pom.xml文件的合適位置,保存。多么方便~

好了,至此Maven的配置我們學完了。
四、終於開始學Jersey了
總結:為什么學習用Jersey創建RESTful WebService要先學Maven,到這一步其實我還沒明白。
但是接下來幾乎是電光火石,瞬間我就懂了。不啰嗦,看:
第一步、創建一個Maven Project(選擇項目的Maven原型 jersey-quickstart-grizzly2,本例中用1.17版本)
這里不同了,一定不要選擇“跳過原型選擇“

在Filter中輸入:jersey-quickstart-grizzly2,使用下面出現的原型創建項目


眨眼的功夫,生成了。
生成后的項目結構如下圖,其中Main.java是grizzly web server啟動的Java小應用程序,MyResource.java是自動生成第一個REST Resource類,包含了一個簡單的GET請求的資源。
Main.java 右鍵→Run As:Java Application,先把服務啟動(這里可沒用Tomcat等WebService)
然后用 http://localhost:9998/application.wadl,訪問這個WebService


接着我們試試REST方式:http://localhost:9998/myresource,當然沒問題,看瀏覽器顯示Got it!

就是這么快捷,你什么都沒做,就生成了一個RESTful的WebService而且,里面的代碼都是開源的,方便學習。
追加第二步、如果找不到Maven原型 jersey-quickstart-grizzly2怎么辦?
用Add ArcheType,然后把從Maven(阿里雲)上找到的3個參數填進去,OK。再找就有了。

在 http://maven.aliyun.com/nexus 上輸入: jersey-quickstart-grizzly2,查找

還有個導入大量archetypes的方法:右鍵下載 maven 的 archetype xml, 然后導入 archetypes:

至此,快速創建一個基於Jersey框架的RESTful WebService的任務,完成!
