Spring 3 を使用する Web アプリケーションがあり、それを Tomcat 7 から Weblogic 10 に移行する必要があります。
このアプリケーションの構造は次のとおりです。
- すべてのアプリケーション ロジックを含むコア モジュール。このモジュールは jar としてパッケージ化されています。
- すべての Web サービスを定義する Web モジュール。このモジュールには、前のモジュールが依存関係として含まれており、「contextConfigLocation」パラメーターにコア モジュール コンテキストを含めることでその Bean を使用します。
私はmavenを使用していますが、これは依存関係がweb-moduleでどのように定義されているかです:
<dependency>
<groupId>com.example</groupId>
<artifactId>module-core</artifactId>
<version>${project.version}</version>
<classifier>${environment}</classifier>
</dependency>
アプリケーションは tomcat では問題なく動作しましたが、Spring は core-module.jar の Bean に依存する Bean を作成できないため、Weblogic ではデプロイできません。エラーは、コアモジュールからのすべての Bean で常に同じです。
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'xxxBean' is defined
「xxxBean」は、core-module.jar で定義されている Bean のいずれかです。その Bean の問題を回避するために参照を削除すると、次に参照される Bean が再びエラーを引き起こします。つまり、Spring は web-module 自体で定義されているすべての Bean を検出しますが、core-module では定義されていません。
エラーのトレースで、weblogic がこれを使用していることがわかります。
com.oracle.weblogic.wsee.wrapper.org.springframework.web.context.ContextLoaderListener.contextInitialized
この問題は、Spring アプリケーション用に Weblogic が導入したラッパーに関連している可能性があります。
この問題を解決できる構成について何か考えはありますか? ありがとう!