2010-12-30 39 views
5

Tôi đang cố gắng tích hợp Spring 3.0.5 với Jersey 1.4. Tôi dường như có tất cả mọi thứ làm việc, nhưng bất cứ khi nào tôi cố gắng và trả lại một Viewable trỏ đến một JSP, tôi nhận được một lỗi 404. Khi tôi đã không sử dụng vào mùa xuân tôi có thể sử dụng bộ lọc này:Tích hợp JSP mùa xuân, Jersey và có thể xem

<filter> 
    <filter-name>Jersey Filter</filter-name> 
    <filter-class>com.sun.jersey.spi.container.servlet.ServletContainer</filter-class> 
    <init-param> 
     <param-name>com.sun.jersey.config.feature.Redirect</param-name> 
     <param-value>true</param-value> 
    </init-param> 
    <init-param> 
     <param-name>com.sun.jersey.config.property.packages</param-name> 
     <param-value>cheetah.frontend.controllers</param-value> 
    </init-param> 
    <init-param> 
     <param-name>com.sun.jersey.config.feature.FilterForwardOn404</param-name> 
     <param-value>true</param-value> 
    </init-param> 
    <init-param> 
     <param-name>com.sun.jersey.config.property.WebPageContentRegex</param-name> 
     <param-value>/(images|css|jsp)/.*</param-value> 
    </init-param> 
</filter> 

Và tôi có thể trả về một thể xem bất kỳ của JSP, hình ảnh, css được lưu trữ trong thư mục thích hợp. Tuy nhiên, bây giờ tôi phải sử dụng SpringServlet để có được sự tích hợp mùa xuân, tôi đang thua lỗ về cách truy cập tài nguyên, vì tôi không thể sử dụng bộ lọc ở trên. Tôi đã thử sử dụng bản đồ servlet này mà không có may mắn:

<servlet> 
    <servlet-name>jerseyspring</servlet-name> 
    <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
    <init-param> 
     <param-name>com.sun.jersey.config.property.WebPageContentRegex</param-name> 
     <param-value>/(images|css|jsp)/.*</param-value> 
    </init-param> 
</servlet> 
<servlet-mapping> 
    <servlet-name>jerseyspring</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 

Có ai biết cấu hình thích hợp để đạt được điều này không?

Cảm ơn bạn đã được trợ giúp.

Trả lời

4

tôi phát hiện ra rằng bạn có thể sử dụng SpringServlet như một bộ lọc:

<filter> 
    <filter-name>Jersey Filter</filter-name> 
    <filter-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</filter-class> 
    <init-param> 
     <param-name>com.sun.jersey.config.feature.Redirect</param-name> 
     <param-value>true</param-value> 
    </init-param> 
    <init-param> 
     <param-name>com.sun.jersey.config.feature.FilterForwardOn404</param-name> 
     <param-value>true</param-value> 
    </init-param> 
    <init-param> 
     <param-name>com.sun.jersey.config.property.WebPageContentRegex</param-name> 
     <param-value>/(images|css|jsp)/.*</param-value> 
    </init-param> 
</filter> 

<filter-mapping> 
    <filter-name>Jersey Filter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

nào thực sự cần phải có được rõ ràng với tôi kể từ khi tôi sử dụng một Servlet trong bộ lọc ban đầu của tôi!

+0

+1 Giúp tôi rất nhiều với câu hỏi của tôi: http://stackoverflow.com/questions/8978200/can-not-connect-jax-rs-service-to-mvc-template – craig

1

Điều này có vẻ tương tự như default Servlet handler gần đây đã được thêm vào Spring.

Tôi nghi ngờ tài nguyên có thể xem của bạn đang được xử lý bởi servlet jerseyspring chứ không phải là Servlet xử lý nội dung tĩnh (Servlet "mặc định" được thảo luận trong liên kết ở trên).

Điều gì sẽ xảy ra nếu bạn thay đổi cấu hình của mình để sử dụng <url-pattern>/</url-pattern>?

Các vấn đề liên quan