5

プロジェクトに 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 の実装もあります。両方のコンテキストリスナーを配置した場合。アプリを実行してもマグノリアが起動しません。

したがって、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 もあり、サーブレット コンテキストからレジストリと ResteasyProviderFactory への参照を自動的に挿入します。(つまり、Resteasy のブートストラップに RestasyBootstrap を使用した場合)。

Resteasy ContextLoaderListener を使用せずにそれを達成する方法を知っている人はいますか? 春のapplicationContext xmlファイルに何を入れる必要がありますか?

4

1 に答える 1

3

RestEasy にも問題がありましたSpringContextListener(プロパティのプレースホルダー${...}が処理されませんでした - RESTEASY-787、Spring Java 構成が機能しませんでしたなど)。
したがって、RestEasy をドロップしてSpringContextListener、デフォルトorg.springframework.web.context.ContextLoaderListenerまたは必要なリスナーを使用するだけで十分です。次のように、Spring XML 構成で Spring Bean を定義するだけです。

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

RestEasy よりも、特別な がなくても機能するはずSpringContextListenerです。わたしにはできる。

于 2014-03-12T00:03:53.413 に答える