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我还没有找到设置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可能是什么样子

ApacheTomcat8与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>

相关内容

  • 没有找到相关文章

最新更新