私は、アプリケーションをweblogic 10.3からweblogic 12.2に移行しています。Weblogic 12.2 @EJBアノテーションを無視する
他のプロジェクトと共有されているライブラリが含まれています。このJARには、このようなことを見に@EJB注釈といくつかのPOJOを含んでいます
public abstract BaseSpecialService{
@EJB DelegateService injectedService;
}
注これは単なるPOJOである:それは@Statelessまたは@Stateful注釈を持っていません。 私はこのサービスを使いたいときに、別のejb-jarの具象的な@Stateless Beanクラスで拡張します。しかし、私は必要なサービスのためにこれをしたいだけです、他のサービスはPOJOSとして扱われるべきです。
weblogic 10ではうまく動作しますが、weblogic 12に移行すると、@EJBアノテーションがEJBにないのに、コンテナが上記の例でDelegateServiceを注入しようとするため、アプリケーションをデプロイできませんしかしPOJOで。私は、展開に、このエラーを取得する:
[J2EE:160200]エラーのejb-refのモジュールから "com.example.BaseSpecialService/injectedService" アプリケーションの "ヌル" "myappの-0.1.0-SNAPSHOT" を解決します。 ejb-refには ejb-linkがなく、ターゲットBeanのJNDI名が指定されていません。 "com.example.DelegateService"インタフェースを実装するためにアプリケーション内のEJBが見つかりませんでしたので、ejb-refをターゲットBeanに自動的にリンクしようとすると、 が失敗しました。このejb-refを のターゲットEJBにリンクまたはマップし、ejb-refで宣言されたインタフェースが であることを確認します。
私の解釈では、Java EE 5に、application.xmlでEJBモジュールとしてマークされているだけのjarファイルをスキャンしますながらのJava EE 7のすべてのjarファイルは、注釈のためにスキャンしてしまうことがあります。私はPOJOに依存性を注入し、共有ライブラリjarをejb-jarではなく通常のjarとして扱うようにアプリケーションサーバを停止する方法を探しています。しかし、私はこれを行うための何かを見つけることができません。 何か助けていただければ幸いです。
感謝を。残念ながら、それは助けにはなりません:(私は明示的にapplication.xmlのモジュールとしてjarをマークしようとしましたが、何も変わりません。私はjarファイルをより小さなjarファイルにリファクタリングし、方法 –