簡體   English   中英

帶有Tomcat的Jersey JAX-RS ResourceConfig

[英]Jersey JAX-RS ResourceConfig with Tomcat

我有一個可以正常工作的基本REST Web服務,但確實有一個問題。 這是一個簡短的代碼片段。

package com.my.app;
import org.glassfish.jersey.server.ResourceConfig;
import javax.ws.rs.ApplicationPath;

@ApplicationPath("api")
public class RestApplication extends ResourceConfig {
    RestApplication() {
        packages("com.my.app");
    }
}

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>The name of my service!</display-name>
</web-app>

我一直在https://jersey.java.net/apidocs/2.25.1/jersey/org/glassfish/jersey/server/ResourceConfig.html的Jersey文檔中進行挖掘,但是我還沒有找到一種方法來設置Tomcat顯示名稱或版本。 現在,我可以在web.xml中設置這些參數,效果很好,但我寧願在擴展ResourceConfig並完全擺脫web.xml的類中設置參數。 這可能嗎?還是我應該堅持使用web.xml? 任何建議將不勝感激。

ResourceConfig類的目的不是替換web.xml文件。

ResourceConfig類的用途是什么?

ResourceConfig類是Jersey API的一部分,並提供高級功能來簡化JAX-RS組件的注冊,例如,在提供的類路徑或一組包名稱中掃描根資源和提供程序類。

它從JA​​X-RS API擴展了Application類。 有關Application類的更多詳細信息,請參考此答案

web.xml文件的用途是什么?

web.xml是基於servlet容器的應用程序的部署描述符。 它指示servlet容器必須加載哪些類(servlet,過濾器和偵聽器),應在上下文中設置哪些屬性,等等。

從Servlet 3.0開始,您甚至不需要web.xml進行簡單部署。 大多數配置(例如注冊servlet,過濾器和偵聽器)都可以通過批注完成。

但是,如果要設置Web應用程序的<display-name> ,仍然需要web.xml 到目前為止,還沒有可以替換該標簽的注釋。

您的web.xml可能是什么樣的

Apache Tomcat 8與Servlet 3.1規范兼容(有關更多詳細信息,請參閱Tomcat文檔 ),因此您的web.xml可能類似於:

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <display-name>Web Application Name</display-name>
</web-app>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM