2013-07-15 17 views
5

Ich benutze Resteasy und Spring für mein Projekt. Wie Reseasy Dokument gesagt: http://docs.jboss.org/resteasy/docs/3.0.1.Final/userguide/html_single/index.html#RESTEasy_Spring_Integration.Resteasy und Spring Integration ohne Spring ContextLoadListener

Ich brauche einen Zuhörer in der Datei web.xml hinzuzufügen:

<listener> 
    <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class> 

<listener> 
    <listener-class>org.jboss.resteasy.plugins.spring.SpringContextLoaderListener</listener-class> 

jedoch in meinem Projekt verwenden wir auch eine CMS Magnolia genannt, und Magnolie hat auch eine Implementierung für SpringContextLoaderListener. Wenn ich beide Kontext-Listener einsetze. Die Magnolie wird nicht gestartet, wenn ich die App starte.

So nach dem Dokument Resteasy sagte:

Wenn Sie Ihre Bean Fabriken keinen Frühling Context verwenden, um zu erstellen, dann können Sie manuell das Resteasy BeanFactoryPostProcessor registrieren, indem Sie eine Instanz von org.jboss.resteasy Zuteilen .plugins.spring.SpringBeanProcessor. Sie können Instanzen einer ResteasyProviderFactory und einer Registrierung von den ServletContext-Attributen org.jboss.resteasy.spi.ResteasyProviderFactory und org.jboss.resteasy.spi.Registry abrufen. (Wirklich die Zeichenkette FQN dieser Klassen). Es gibt auch eine org.jboss.resteasy.plugins.spring.SpringBeanProcessorServletAware, die automatisch Verweise auf die Registry und ResteasyProviderFactory aus dem Servlet-Kontext einfügt. (Das heißt, wenn Sie RestasyBootstrap verwendet haben, um Rasteasy zu bootstrappen).

Weiß jemand, wie kann ich das erreichen, ohne Resteasy ContextLoaderListener zu verwenden? Was muss ich in meine Spring ApplicationContext XML-Datei eingeben?

+0

Wird das jemand wissen? – ttt

Antwort

3

Ich hatte auch ein Problem mit RestEasy SpringContextListener (Eigenschaften Platzhalter ${...} wurden nicht verarbeitet - RESTEASY-787, Spring Java-Konfiguration hat nicht funktioniert, etc.).
So ist es genug, RestEasy SpringContextListener fallen zu lassen und Standard org.springframework.web.context.ContextLoaderListener oder was auch immer Sie Listener verwenden müssen. Sie müssen nur Spring-Bean in der Spring-XML-Konfiguration wie folgt definieren:

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

als Resteasy sollte auch ohne ihre besondere SpringContextListener arbeiten. Für mich geht das.