3

基本的に私はマルチモジュールアプリケーションを持っています:

データビジネスウェブアプリ

web-appの部分には 、さまざまなapplicationContext.xml構成ファイルをロードするためのこの構成のweb.xmlがあります。

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:META-INF/spring/applicationContext.xml</param-value>
</context-param>

[...]

<!-- Handles Spring requests -->
<servlet>
    <servlet-name>empp-v2-web</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>WEB-INF/spring/webmvc-config.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

私の他の2つのモジュールには、それぞれMETA-INF / spring/applicationContext.xmlがあります。webmvc-config.xmlでは、@ Controllerアノテーションが付いたクラスに対してのみコンポーネントスキャンを実行しますが、applicationContextでは、コントローラーを除く基本パッケージ内のすべてをスキャンします。

問題は、コントローラーでBeanを自動配線しようとすると、常にNoSuchBeanDefinitionExceptionが発生することです。これは、Eclipseで構成されたサーバー上で「追加と削除」を使用して展開されたプロジェクトとしてアプリケーションを実行すると発生します。Mavenビルドを実行し、同じサーバーにアプリケーションを手動でデプロイすると、アプリケーションは機能し、Beanは自動配線されます。m2eclipseには特別な設定が必要ですか?私には、この場合、applicationContext.xmlがロードされていないようです。m2eclipseが正しい場所でリソースファイルを処理していることをどのように確認できますか?

4

2 に答える 2

0

m2e-wtpをインストールしましたか?どのサーバーにデプロイしていますか?WTPを介して展開された爆発的な戦争の内容と、戦争アーカイブの内容を比較して、何かが不足していないかどうかを確認する必要があります。

于 2012-11-06T09:18:43.497 に答える
0

m2eclipse に問題があり、複数のアプリケーション コンテキストをクラスパスにロードしているようです。私にとって唯一の解決策は、すべてのスプリング構成をメイン Web アプリケーションのアプリケーション コンテキスト内に配置することでした。このソリューション ソリューションは、パッケージ化された EAR と、Eclipse 内で実行される展開されたアプリケーションの両方で機能します。

于 2012-10-25T08:22:20.360 に答える