REST 自定義資源配置

2018-08-08 13:44 更新

觀察 web.xml

之前的 web.xml 配置是這樣的:

<web-app 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 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <servlet>
        <servlet-name>Jersey Web Application</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>com.waylau.rest</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Jersey Web Application</servlet-name>
        <url-pattern>/webapi/*</url-pattern>
    </servlet-mapping>
</web-app>

其中

<init-param>
    <param-name>jersey.config.server.provider.packages</param-name>
    <param-value>com.waylau.rest</param-value>
</init-param>

這段說(shuō)的是,如果配置屬性無(wú)需設(shè)置,要部署應(yīng)用程序只包括存儲(chǔ)在特定的包的資源和提供者,那么你可以指示 Jersey 自動(dòng)掃描這些包,這樣就能自動(dòng)注冊(cè)找到的任何資源和提供者,這樣就能找到了com.waylau.rest包下的 MyResource 資源并且注冊(cè)。

自定義配置

當(dāng)需要更多的配置,上述方法顯然不能滿足??梢灾貙?nbsp;Application 類。

package com.waylau.rest;

import org.glassfish.jersey.server.ResourceConfig;

/**
 * REST 主應(yīng)用
 * 
 * @author waylau.com
 * 2015年3月3日
 */
public class RestApplication extends ResourceConfig {

    public RestApplication() {
        //資源類所在的包路徑  
        packages("com.waylau.rest"); 
    }
}

為了規(guī)范,我們?cè)诮?nbsp;com.waylau.rest.resource 包,用來(lái)專門放資源來(lái)。接著把我們的資源 MyResource 移到該包下面。

public class RestApplication extends ResourceConfig {

    public RestApplication() {
        //資源類所在的包路徑  
        packages("com.waylau.rest.resource"); 
    }
}

最終,RestApplication 在 web.xml 配置是這樣的:

<init-param>
    <param-name>javax.ws.rs.Application</param-name>
    <param-value>com.waylau.rest.RestApplication</param-value>
</init-param>

運(yùn)行測(cè)試

啟動(dòng)項(xiàng)目,訪問(wèn) http://localhost:8080/,點(diǎn)擊“Jersey resource”,顯示“Got it!”,說(shuō)明配置成功。

源碼

custom-resourceconfig 項(xiàng)目


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)