我正在为我的项目使用 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 的实现。如果我把这两个上下文监听器。运行应用程序时不会启动 magnolia。
所以根据 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 上下文中注入对 Registry 和 ResteasyProviderFactory 的引用。(也就是说,如果您使用过 RestasyBootstrap 来引导 Resteasy)。
有谁知道如何在不使用 Resteasy ContextLoaderListener 的情况下实现这一目标?我需要在我的 spring applicationContext xml 文件中添加什么?