首頁 > Java > java教程 > 主體

創建Jersey REST 服務,基於Maven

巴扎黑
發布: 2017-06-23 13:58:03
原創
1749 人瀏覽過
  • 基於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服務公佈的介面:

            base="http://localhost:8080/myapp/">

    ##                所#白白' "myresource">

                id

    =

    "getIt"name="GET">

    ############              ##################                         "text/plain"###/># #############################

                                   1##               

    #                # ;

    存取服務

    ##可以直接存取http://localhost:8080/myapp/myresource

    就可以存取REST服務,直接存取REST服務,會輸出 Got it!
  • 專案說明

    啟動服務的指令mvnexec:java,該指令實際上呼叫了exec-maven-plugin 外掛定義的一個值為java 的goal ,用以觸發mainClass中的main函數,外掛程式配置如下:

    org.codehaus.mojo

    exec-maven-plugin

    1.2.1

    ##          ##executions>

                                                      

                       lt;goal>java

                           #                        

    ####            #######################   #org.drsoft .rest.Main#########################

                

      <

    ##  

    <##  <

    ##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,在單元測試類別中,執行單元測試前需要啟動服務,並使用Jersey

    Client中定義的方法來呼叫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();##        )##         ##        @測試

    #        

    public

    void

    testGetIt

    () {

    ############# ########################################################### ########################################################### ########################################################### ########################################################### ############################################### .request( ).get(String.class);#######

                    assertEquals("Got it!", responseMsg);

            }

    #}

  • 基於Servlet容器服務

  • #基於Servlet容器服務

    建立專案我們首選使用archetypeGroupId 為org.glassfish.jersey.archetypes 的原型,archetypeArtifactId為jersey-quickstart-webapp#的原型,建立REST服務項目,使用

    IDEA建立項目如下:

  • ##運行服務

    • 由於這個是Web項目,沒有main函數,因此必須部署到Servlet容器中,才能將其運行,我們需要設定Tomcat,IDEA的設定如下:
      #點擊##Run選單的EditConfiguration,在開啟的表單中增加Tomcat服務配置,指定Tomcat

      的安裝目錄,並設定目前網站的部署的虛擬目錄名稱,如下:

    點擊OK後,就設定好Servlet容器,可以運行服務了
  • 訪問服務服務啟動後,我們可以存取http://localhost:8080/RESTWebAPP/webapi /myresource來呼叫REST服務,會輸出

  • Got it!
  • ######專案說明### ###

    Web根目錄的名稱為webapp,預設的Servlet容器版本為2.5,並且配置了WEB-INF/web.xml檔案來設定REST服務,web.xml配置如下:

    #version="1.0"encoding="UTF-8"? >

    see implementation details  -->

    version="2.5"xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation#=" http://java.sun.com/xml/ns/javaee ">

    #        #

                    Jersey Webp Application#Jersey Webp

    ##                org.glassfish.jersey.servlet.ServletContainal>org.glassfish.jersey.servlet.ServletContaind-class<> ;

                    # ##                         jersey.##).provider##jersey.##>.provider.

    #name>

    #                         #<#m-value>##org.org.drL.#/m-value¶#n-value¶#.#org.L.L.

    ##                

                    1

            #

    ##      #  <servlet ##      #  <servlet ##     

    ##                Jersey Web 應用程序

    ##                

    /webapi/*

            

    < /web-app>

以上是創建Jersey REST 服務,基於Maven的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板