Jersey Servlet 在 url-pattern 为 /* 时查找资源,但当 url-pattern 为 / 时



我正在编写一个Web服务,使用Jersey 2.17和Tomcat 8。

在网络中.xml当我将 url 模式更改为/* 时,我能够点击网络服务并获得响应。但是,当我将 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 执行之前运行某些过滤器。如果过滤器失败,则不应继续调用 servlet。

所以基本上我不想覆盖任何已经存在的映射。

尝试在这样的web.xml中使用filter而不是servlet -

<filter-mapping>
    <filter-name>jersey-servlet</filter-name>
    <url-pattern>/</url-pattern>
</filter-mapping>

相关内容

  • 没有找到相关文章

最新更新