2014-11-05 112 views
4

我是新來的新澤西州和一般的servlet,所以希望我只是失去了一些東西簡單...提供靜態文件與澤西2

我有一個應用程序新澤西州(v2.13)啓動和運行使用Guice(3.0)進行依賴注入以及src/main/webapp中的一些靜態文件。如果我將Jersey 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> 

回答

4

我指着this問題,並得到了我的答案。基本上我只需要將Jersey servlet更改爲過濾器,並提供一個靜態內容正則表達式作爲初始參數。現在我已經將我的servlet裝載到了根目錄下,並且我的靜態文件正如我所希望的那樣得到提供。