JAVA- Jersey使用示例
0 概述
本文檔主要講述JAVA-Jersey的使用說明,并給出了示例。
1 前提條件
java安裝并配置好相應的路徑
安裝java的IDE Eclipse或者IDEA
進入各自的官網安裝即可:
Eclipse: https://www.eclipse.org/
IDEA: https://www.jetbrains.com/
安裝Postman (便于調試)
進入官網 https://www.getpostman.com/,下載安裝即可。
2 Jersey的使用
以下以eclipse為例
2.1 創建maven項目
File >> new >> project >> maven project
在這里選擇導入Jersey官網提供的快速構建包,如果沒有該選項可以按如下操作:
https://jersey.github.io/documentation/latest/getting-started.html
選擇Add Archetype…
添加如下內容:
然后填寫Group id 和Artifact id即可完成maven工程的創建
2.2 查看新建的工程項目
創建好項目之后,我們就可以看到官方例子啦,主要有兩個類Main.java 和MyResource.java,其中MyResource.java就是我們Restful資源,Main.java就是啟動restful服務的類。打開工程中的pom.xml文件,并輸入以下內容完成maven工程依賴的添加:
2.3 運行示例
運行Main.java后,在瀏覽器輸入http://localhost:8080/myapp/myresource,可以看到如下輸則表示簡單例子運行成功。
注意這里的8080為Jersey服務開放的接口,若被其他應用占用,則會報錯,可以修改為未被占用的端口進行測試。
2.4 Jersry其他方法調用
@GET方式:提供資源的只讀訪問
在MyResource.java,新建@GET方法
@Path表示指定的訪問路徑
@Produces 指定http請求的MIME類型數組類型默認是*/*,表示任意的MIME類型
在Postman中輸入 http://localhost:8080/myapp/myresource/test可看到如下返回內容:
@QueryParam
QueryParam查詢URI里面?之后的參數進行解析
在Postman中輸入http://localhost:8080/myapp/myresource/chen,并指定對應的參數的值可看到如下返回內容:
上圖中的key和value分別代表參數的名稱和值。
@Path()中設置了傳參的方式,若上例子中Path(“/{param1}/{param2}/{param3}”),則這時候的傳參方式應該是http://localhost:8080/…/…/…/param1=value1/param2=value2/param3=…
輸入 http://localhost:8080/myapp/myresource/陳/18/男 可看到:
@Pathparam(“value”)檢索url中的value自動與參數匹配,此時使用@Queryparam參數就會出現錯誤,因為@Queryparam參數指定格式與@Pathparam參數不一樣。
@Fromparam參數以表單的形式,訪問的URI被解析成form。
@Headparam參數則是獲取http請求頭中的參數值。
此時我們在Postman中訪問:http://localhost:8080/myapp/myresource/head
可以看到此時我們不需要在URL中輸入參數都可以進行相應的訪問。這里的@DefaultValue(“18”)為初始默認值設置,當沒有指定參數時輸入的默認值為“18”。
@POST方式:用于更新現有資源或者創建一個新資源。
例如重寫上述/head訪問方法,在該訪問中新增加一個id參數。并把id設置為@pathparam參數,然后在Postman中輸入http://localhost:8080/myapp/myresource/head/02訪問:
其他方式
@PUT方式:用于創建一個新資源。(客戶端需要提供改變后的完整資源)
@PATCH(UPDATE):表示在服務器更新資源(客戶端需要提供改變的屬性【可以簡單理解為補丁】)。
@DELETE方式:用于移除一個資源。
@OPTIONS方式:用于獲取資源上支持的操作。
@HEAD方式:只返HTTP header,不返回HTTP body。獲得一個資源的元數據,比如一個資源的hash值或者最后修改日期。
2.5 Jersey實現jar包的調用
首先,把新建的項目導出為jar包。選中需要導出的項目,右擊選擇Export,如圖:
然后選擇JAR file,設置導出的路徑即可。我們需要用到其他jar包時,也可以在maven官方倉庫中進行查找,下載并導入即可。
Maven中央倉庫地址為:
https://mvnrepository.com/
這時我們可以在我們剛剛新建的Jersey_test項目中導入外部jar包。選中Jersey_test項目,右擊選擇Build path,Configure build path…,如圖:
選擇Add External JARs,選擇jar包的路徑,導入即可。導入后可以看到我們的jar包:
下圖分別是原來jar包中的內容,和新的@POST測試方法
在Postman中運行即可看到如下測試結果:
3 Jersey實現對FastDFS的調用
在開始之前請先完成FastDFS集群環境的搭建,并實現可以使用JAVA調用,詳情請看之前我的文章《搭建分布式FastDFS集群》、《FastDFS-JAVA-Client使用示例》。
導出FastDFSTest的jar包,并導入到Jersy_test項目中。
在MyResource中新建@POST方法
這里的multipart/form-data,表示不對字符編碼。在使用包含文件上傳控件的表單時,必須使用該值。這里我們的參數包含路徑,因此要采用這樣的傳參方式。另外兩種常見的傳參方式為:
application/x-www-form-urlencoded 在發送前編碼所有字符(默認);text/plain 空格轉換為 “+” 加號,但不對特殊字符編碼。file_path和file_type分別代表文件上傳的路徑和文件類型。
在Postman中運行如圖:
此時進入已經搭建好的FastDFS集群中的Storageserver中,可以看到我們通過POST方式上傳的文件已經上傳成功了。
在瀏覽器中輸入:
storageseverip/group1/M00/00/00/rBAPQV0lXOiAdHNHAABwDWWmycs944.jpg即可看到剛剛通過POST方式上傳的文件。
同時也可以實現文件的下載、刪除等功能。
實現文件的下載
此時在Postman中執行
進入D盤下的temp文件夾中即可發現該圖片已成功下載
實現文件的刪除
此時完成了該文件的刪除,進入storagesever查看,該文件確實已被刪除
總結
以上是生活随笔為你收集整理的JAVA- Jersey使用示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库:MySQL中,当update修改
- 下一篇: JAVA练习55-最小的k个数