Resteasy и весенняя интеграция без Spring ContextLoadListener
Я использую Resteasy и Spring для моего проекта. Как сказано в документе Resteasy: http://docs.jboss.org/resteasy/docs/3.0.1.Final/userguide/html_single/index.html#RESTEasy_Spring_Integration.
Мне нужно добавить слушателя в сеть.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 под названием magnolia, и magnolia также имеет реализацию для SpringContextLoaderListener. Если я поставлю оба контекста слушателя. Магнолии не будет началось, когда я запустил приложение.
Итак, согласно документу Resteasy сказано:
Если вы не используете Spring ContextLoaderListener для создания фабрик бобов, то вы можете вручную зарегистрировать RESTeasy BeanFactoryPostProcessor, выделив экземпляр org.с JBoss.отдыхай.подключаемый модуль.весна.SpringBeanProcessor. Экземпляры ResteasyProviderFactory и реестра можно получить из организации атрибутов ServletContext.с JBoss.отдыхай.спи.ResteasyProviderFactory и орг..с JBoss.отдыхай.спи.Регистратура. (На самом деле строка FQN этих классов). Существует также организация.с JBoss.отдыхай.подключаемый модуль.весна.SpringBeanProcessorServletAware, который будет автоматически вводить ссылки на реестр и ResteasyProviderFactory из контекста сервлета. (то есть, если вы использовали RestasyBootstrap для загрузки Resteasy).
Знает ли кто-нибудь, как я могу достичь этого без использования Resteasy ContextLoaderListener? Что мне нужно добавить в мой весенний applicationContext xml-файл?
1 ответ:
У меня также была проблема с RestEasy
SpringContextListener
(заполнители свойств${...}
не были обработаны - RESTEASY-787, Spring java config не работал и т. д.).
Поэтому достаточно отбросить RestEasySpringContextListener
и использовать defaultorg.springframework.web.context.ContextLoaderListener
или любой другой слушатель, который вам нужен. Вам просто нужно определить Spring bean в вашей конфигурации Spring XML следующим образом:<bean class="org.jboss.resteasy.plugins.spring.SpringBeanProcessorServletAware"/>
, Чем RestEasy должен работать даже без специальной
SpringContextListener
. Это работает на меня.