2013-07-15 18 views
5

Tôi đang sử dụng Resteasy và Spring cho dự án của mình. Như tài liệu Resteasy cho biết: http://docs.jboss.org/resteasy/docs/3.0.1.Final/userguide/html_single/index.html#RESTEasy_Spring_Integration.Việc tích hợp Resteasy và Spring mà không cần Spring ContextLoadListener

tôi cần phải thêm một người biết lắng nghe trong file web.xml:

<listener> 
    <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class> 

<listener> 
    <listener-class>org.jboss.resteasy.plugins.spring.SpringContextLoaderListener</listener-class> 

Tuy nhiên, trong dự án của tôi, chúng tôi cũng sử dụng một cms gọi là mộc lan, và mộc lan cũng có một triển khai cho SpringContextLoaderListener. Nếu tôi đặt cả hai trình nghe ngữ cảnh. Mộc lan sẽ không được bắt đầu khi tôi chạy ứng dụng.

Vì vậy, theo các tài liệu Resteasy nói:

Nếu bạn không sử dụng một ContextLoaderListener mùa xuân để tạo ra các nhà máy đậu của bạn, sau đó bạn có thể tự đăng ký RESTeasy BeanFactoryPostProcessor bằng cách phân bổ một thể hiện của org.jboss.resteasy .plugins.spring.SpringBeanProcessor. Bạn có thể lấy các cá thể của một ResteasyProviderFactory và Registry từ các thuộc tính ServletContext org.jboss.resteasy.spi.ResteasyProviderFactory và org.jboss.resteasy.spi.Registry. (Thực sự là chuỗi FQN của những lớp này). Ngoài ra còn có một org.jboss.resteasy.plugins.spring.SpringBeanProcessorServletAware, nó sẽ tự động chèn các tham chiếu đến Registry và ResteasyProviderFactory từ ngữ cảnh Servlet. (có nghĩa là, nếu bạn đã sử dụng RestasyBootstrap để bootstrap Resteasy).

Có ai biết làm cách nào để có thể đạt được điều đó mà không cần sử dụng Resteasy ContextLoaderListener? Tôi cần gì để đưa vào tập tin xml applicationContext mùa xuân của tôi?

+0

Có ai đó biết điều đó không? – ttt

Trả lời

3

Tôi cũng gặp sự cố với RestEasy SpringContextListener (thuộc tính placeholders ${...} không được xử lý - RESTEASY-787, Cấu hình Spring java không hoạt động, v.v.).
Vì vậy, nó đủ để thả RestEasy SpringContextListener và sử dụng mặc định org.springframework.web.context.ContextLoaderListener hoặc bất kỳ người nghe nào bạn cần. Bạn chỉ cần phải xác định đậu mùa xuân trong cấu hình XML mùa xuân của bạn như thế này:

<bean class="org.jboss.resteasy.plugins.spring.SpringBeanProcessorServletAware"/> 

Thần RestEasy nên làm việc ngay cả khi không đặc biệt SpringContextListener của họ. Nó làm việc cho tôi.

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