我正在使用Jersey 2.17和Tomcat 8编写Web服务。
在web.xml中,当我将我的网址格式更改为/ *时,我能够点击网络服务并获得响应。 但是当我将url模式更改为/然后我总是得到404错误(找不到资源)。
不能工作
<servlet-mapping>
<servlet-name>jersey-servlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
工作完美
<servlet-mapping>
<servlet-name>jersey-servlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
我的web.xml除此之外不包含其他Servlet或Filter映射。
<servlet>
<servlet-name>jersey-servlet</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.bandi.rest</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
是否还需要其他任何配置来完成这项工作? 我不能使用/ *作为servlet映射,因为我需要在执行此servlet之前运行某些Filters。如果过滤器失败,则不应该继续调用servlet。
所以基本上我不想覆盖已经存在的任何映射。
答案 0 :(得分:0)
尝试在filter
中使用servlet
代替web.xml
-
<filter-mapping>
<filter-name>jersey-servlet</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping>