2013-07-15 8 views
5

Używam Resteasy i Spring do mojego projektu. Jak dokument Resteasy powiedział: http://docs.jboss.org/resteasy/docs/3.0.1.Final/userguide/html_single/index.html#RESTEasy_Spring_Integration.Integracja z Resteasy i Spring bez Spring ContextLoadListener

muszę dodać słuchacza w pliku 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> 

Jednak w moim projekcie również stosowane CMS o nazwie magnolia i magnolia ma również implementację SpringContextLoaderListener. Jeśli wstawię oba detektory kontekstu. Magnolia nie zostanie uruchomiona po uruchomieniu aplikacji.

więc zgodnie z dokumentem Resteasy powiedział:

Jeśli nie jest stosowana sprężyna ContextLoaderListener tworzyć fabryki Bean, a następnie można ręcznie zarejestrować RESTeasy BeanFactoryPostProcessor przeznaczając wystąpienie org.jboss.resteasy .plugins.spring.SpringBeanProcessor. Można uzyskać instancje ResteasyProviderFactory i Registry z atrybutów ServletContext org.jboss.resteasy.spi.ResteasyProviderFactory i org.jboss.resteasy.spi.Registry. (Naprawdę ciąg FQN tych klas). Istnieje również org.jboss.resteasy.plugins.spring.SpringBeanProcessorServletAware, który automatycznie wstrzyknie odniesienia do Rejestru i ResteasyProviderFactory z kontekstu serwletu. (to znaczy, jeśli użyłeś RestasyBootstrap do bootstrapu Resteasy).

Czy ktoś wie, jak mogę to osiągnąć bez korzystania z Resteasy ContextLoaderListener? Co muszę umieścić w moim wiosennym pliku applicationContext xml?

+0

Czy ktoś to wie? – ttt

Odpowiedz

3

Mam również problem z RestEasy SpringContextListener (właściwości zastępcze obiektów ${...} nie zostały przetworzone - RESTEASY-787, Spring java config nie działa itp.).
Wystarczy więc upuścić RestEasy SpringContextListener i użyć domyślnego org.springframework.web.context.ContextLoaderListener lub innego słuchacza, jakiego potrzebujesz. Po prostu trzeba zdefiniować fasoli Wiosny w konfiguracji XML Wiosny tak:

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

niż RestEasy powinien działać nawet bez ich specjalnej SpringContextListener. Mi to pasuje.