Eclipse + Jersey 發布RESTful WebService(一)了解Maven和Jersey,創建一個WS項目(成功!)


 

一、下文中需要的資源地址匯總

 

 

二、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>
替換settings.xml內容

 

(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的任務,完成!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM