我对Jersey和servlets都是新手,所以希望我能错过一些简单的东西……
我已经启动并运行了一个Jersey应用程序(v2.13),使用Guice (3.0)进行依赖注入,以及src/main/webapp中的一些静态文件。如果我将我的Jersey servlet映射到/*以外的任何地方,并请求webapp文件夹中的静态文件,它将不会出现任何问题。如果我将我的Jersey servlet映射到根目录,那么对静态文件的任何请求都会得到一个404。
我真的更喜欢将Jersey servlet映射到根目录,但我也需要能够提供静态内容。有什么方法可以做到这一点吗?也许是为了将Jersey servlet映射到根目录,但忽略对/assets/*或类似内容的请求?
这是我的web.xml:
<filter>
<filter-name>guice-filter</filter-name>
<filter-class>com.google.inject.servlet.GuiceFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>guice-filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>com.example.MyGuiceServletContextListener</listener-class>
</listener>
<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.example.MyResourceConfig</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Web Application</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>发布于 2014-11-06 01:45:59
我被指向this问题并得到了我的答案。基本上,我只需要将Jersey servlet更改为一个过滤器,并提供一个静态内容正则表达式作为初始化参数。现在,我在根目录挂载了servlet,静态文件按照我想要的方式提供。
https://stackoverflow.com/questions/26763039
复制相似问题