没有Spring ContextLoadListener的Resteasy和Spring集成

ttt*_*ttt 5 spring magnolia resteasy

我正在为我的项目使用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>
Run Code Online (Sandbox Code Playgroud)

<listener>
  <listener-class>org.jboss.resteasy.plugins.spring.SpringContextLoaderListener</listener-class>
Run Code Online (Sandbox Code Playgroud)

但是,在我的项目中,我们还使用了一个名为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文件中添加什么内容?

Ond*_*zek 3

我也遇到了 RestEasy 的问题SpringContextListener(属性占位符${...}未处理 - RESTEASY-787、Spring java 配置不起作用等)。
因此,删除 RestEasySpringContextListener并使用默认org.springframework.web.context.ContextLoaderListener监听器或任何您需要的监听器就足够了。您只需在 Spring XML 配置中定义 Spring bean,如下所示:

<bean class="org.jboss.resteasy.plugins.spring.SpringBeanProcessorServletAware"/>
Run Code Online (Sandbox Code Playgroud)

即使没有特殊的 RestEasy 也应该可以工作SpringContextListener。这个对我有用。