我正在为我的项目使用Resteasy和Spring。正如Resteasy文件所说:http://docs.jboss.org/resteasy/docs/3.0.1.Final/userguide/html_single/index.html#RESTEasy_Spring_Integration。
我需要在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>
然而,在我的项目中,我们还使用了一个名为magnolia的cms,而magnolia也有一个SpringContextLoaderListener的实现。如果我把两个上下文监听器。当我运行应用程序时,玉兰花不会启动。
所以根据Resteasy文件说:
如果不使用Spring ContextLoaderListener创建bean工厂,则可以通过分配org.jboss.resteasy.plugins.spring.SpringBeanProcessor的实例来手动注册RESTeasy BeanFactoryPostProcessor。您可以从ServletContext属性org.jboss.resteasy.spi.ResteasyProviderFactory和org.jboss.resteasy.spi.Registry获取ResteasyProviderFactory和Registry的实例。 (真的是这些类的字符串FQN)。还有一个org.jboss.resteasy.plugins.spring.SpringBeanProcessorServletAware,它将自动从Servlet Context注入对Registry和ResteasyProviderFactory的引用。 (也就是说,如果你使用RestasyBootstrap训练Resteasy)。
有没有人知道如何在不使用Resteasy ContextLoaderListener的情况下实现这一目标?我需要在spring applicationContext xml文件中添加什么内容?
答案 0 :(得分: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"/>
如果没有他们的特殊SpringContextListener
,那么RestEasy应该可以工作。它对我有用。