私は Spring 2.5.4 を使用しており、Weblogic にデプロイする Java アプリケーションを作成しています。
コードで使用したい外部ライブラリ (アプリケーションの結果の WAR ファイルの WEB-INF/classes ディレクトリに含まれる) にクラスがあります。コードでクラスのオブジェクトのインスタンス変数を作成し、@Autowired アノテーションとゲッターとセッターを追加しました。アプリケーション コンテキスト ファイルで、ライブラリ クラスのタイプの Bean を宣言し、以下を追加しました。
<context:annotation-config />
<context:component-scan base-package="com.mycompany" />
...クラスをスキャンして注釈を処理する AutowiredAnnotationBeanPostProcessor を登録するため。
アプリケーションをデプロイしようとすると、次のエラーが発生します。
java.lang.IllegalStateException: Annotation-specified bean name 'myBean' for bean
class [com.mycompany.package.ClassName] conflicts with existing, non-compatible
bean definition of same name and class [com.mycompany.otherPackage.ClassName]
これは、アプリケーション コードのクラスと同じ名前のクラスがライブラリにあるためだと思います (両方のクラスのパッケージ名は「com.mycompany」で始まります)。注意 これは私が追加したクラスではなく、別のクラスです。アプリケーションのクラス名を変更せずにこの問題を回避する方法はありますか?
ご協力ありがとうございます。