基於JavaSE形式的REST服務
我們首選使用archetypeGroupId 為org.glassfish.jersey.archetypes 的原型,archetypeArtifactId為jersey-quickstart-grizzly2 的原型,創建REST服務項目,使用IDEA建立項目如下:
##點選OK後,使用該原始模型建立專案。
專案建立好後,原始模型已經預設建立了一個REST服務,我們可以直接啟動REST服務,進入專案的根目錄,執行以下命令建置和啟動服務:
#mvnpackage
#mvn##exec:java
會啟動REST服務,可以隨時透過回車鍵停止服務,輸出如下:
#六月19, 2017 11:12:23 下午org. glassfish.grizzly.http.server.NetworkListener start
#訊息: Started listener bound to [localhost:8080]
#六月19, 2017 11:12:23 下午org.glassfish.grizzly.http.server.HttpServer start
訊息: [HttpServer] Started.
Jersey app started with WADL available at http://localhost:8080/myapp/application.wadl
Hit enter to stop it…
Hit enter to stop it…Hit enter to stop it…
Hit enter to stop it…也提供了WADL,透過存取application.wadl可以取得目前REST服務公佈的介面:
## 所
"getIt"name="GET">
############ ################## "text/plain"###/># #############################1##
# # ;
存取服務
##可以直接存取http://localhost:8080/myapp/myresource
就可以存取REST服務,直接存取REST服務,會輸出 Got it!專案說明 啟動服務的指令mvnexec:java,該指令實際上呼叫了exec-maven-plugin 外掛定義的一個值為java 的goal ,用以觸發mainClass中的main函數,外掛程式配置如下:
## #
lt;goal>java
# 1
#### ###
<
##<## <
##REST服務類別為MyResource,其在@Path 中定義了資源路徑,@GET中定義了GET方法getIt(),@Produces中定義了回應的類型為普通字串,範例程式碼如下:
#@Path##("myresource")
public class MyResource {
# @GET
@Produces(MediaType.TEXT_PLAIN).TE # public String
getIt() {
# return"Got it!";
}
}
REST服務的單元測試類別MyResourceTest,在單元測試類別中,執行單元測試前需要啟動服務,並使用JerseyClient中定義的方法來呼叫REST服務,範例程式碼如下:##public class MyResourceTest {
#private HttpServer server;
## # ; @Before ##void
setUp() throws Exception {
######### ###// start the server###############" ######
// 建立客戶端
#
##// 若要啟用,請取消註解下列行程
## 在客戶端的JSON(您也必須取消註解
// 對pom.xml 中對jersey-media-json-media Main.startServer())
## // --
## // c.configuration().enable(new org.glassfish.jersey.media.json.JsonJaxbFeature());
target = c.target(Main.BASE_URI);#
##@之後
# public
void
tearDown() throws# 異常{
# server.stop();## )## ## @測試
#
publicvoid
testGetIt() {
############# ########################################################### ########################################################### ########################################################### ########################################################### ############################################### .request( ).get(String.class);#######
assertEquals("Got it!", responseMsg);
}
#}
基於Servlet容器服務
建立專案我們首選使用archetypeGroupId 為org.glassfish.jersey.archetypes 的原型,archetypeArtifactId為jersey-quickstart-webapp#的原型,建立REST服務項目,使用
IDEA建立項目如下:
##運行服務
的安裝目錄,並設定目前網站的部署的虛擬目錄名稱,如下:
#
訪問服務服務啟動後,我們可以存取http://localhost:8080/RESTWebAPP/webapi /myresource來呼叫REST服務,會輸出
Web根目錄的名稱為webapp,預設的Servlet容器版本為2.5,並且配置了WEB-INF/web.xml檔案來設定REST服務,web.xml配置如下:
#version="1.0"encoding="UTF-8"? >
see implementation details -->
# #
##
#
# #<#m-value>##org.org.drL.#/m-value¶#n-value¶#.#org.L.L.
##
# ## # <servlet ## # <servlet ## ##
< /web-app>
以上是創建Jersey REST 服務,基於Maven的詳細內容。更多資訊請關注PHP中文網其他相關文章!