2013-07-15 60 views
5

我爲我的項目使用了Resteasy和Spring。正如Resteasy文件所說:http://docs.jboss.org/resteasy/docs/3.0.1.Final/userguide/html_single/index.html#RESTEasy_Spring_Integration沒有Spring的Resteasy和Spring集成ContextLoadListener

我需要在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> 

然而,在我的項目,我們也採用了CMS叫玉蘭,玉蘭和也有一個SpringContextLoaderListener的實現。如果我把這兩個上下文監聽器。當我運行應用程序時,木蘭不會啓動。

所以根據RestEasy的文件稱:

如果不使用Spring的ContextLoaderListener來創建bean工廠,這時你可以手動通過分配org.jboss.resteasy的實例註冊RestEasy的實現BeanFactoryPostProcessor .plugins.spring.SpringBeanProcessor。您可以從ServletContext屬性org.jboss.resteasy.spi.ResteasyProviderFactory和org.jboss.resteasy.spi.Registry中獲取ResteasyProviderFactory和Registry的實例。 (真的是這些類的字符串FQN)。還有一個org.jboss.resteasy.plugins.spring.SpringBeanProcessorServletAware,它會自動從Servlet上下文注入Registry和ResteasyProviderFactory的引用。 (也就是說,如果您使用RestasyBootstrap來啓動Resteasy)。

有沒有人知道如何才能實現這一點,而不使用Resteasy ContextLoaderListener?我需要在我的spring applicationContext xml文件中放入什麼?

+0

有人會知道嗎? – ttt

回答

3

我也有問題與RestEasy SpringContextListener(屬性佔位符${...}未處理 - RESTEASY-787,Spring的Java配置沒有工作等)。
因此,放棄RestEasy SpringContextListener並使用默認org.springframework.web.context.ContextLoaderListener或您需要的任何偵聽器就足夠了。你只需要在你的Spring XML配置定義的Spring bean是這樣的:

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

比RestEasy的甚至應該工作,沒有自己的特殊SpringContextListener。這個對我有用。