【问题标题】:Serving static files with Jersey 2使用 Jersey 2 提供静态文件
【发布时间】:2014-11-05 17:09:18
【问题描述】:

我是 Jersey 和一般 servlet 的新手,所以希望我只是缺少一些简单的东西......

我已经启动并运行了一个 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>

【问题讨论】:

    标签: java servlets jersey jersey-2.0


    【解决方案1】:

    我被指向this 问题并得到了我的答案。基本上我只需要将 Jersey servlet 更改为过滤器并提供静态内容正则表达式作为初始化参数。现在我将我的 servlet 安装在根目录下,并且我的静态文件正按我的意愿提供。

    【讨论】:

      猜你喜欢
      • 2011-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-21
      • 2013-10-17
      • 2011-01-27
      相关资源
      最近更新 更多