[英]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組件的注冊,例如,在提供的類路徑或一組包名稱中掃描根資源和提供程序類。
它從JAX-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.