私の現在のプロジェクトは、warとejbモジュールで構成され、jar(maven経由で組み込み)を使用しています。このjarファイルにはCDIコンポーネントが含まれています。これをwarモジュールに挿入すると期待通りに動作しますが、これをejbモジュールに挿入すると、EclipseのWAS 8.5(完全プロファイル)から起動時にNoClassDefFoundErrorが発生します。eclipse:EJBモジュールの外部CDI:NoClassDefFoundError
最初にサーバーを起動したら、後でインジェクションを追加して再起動すると動作するように見えます。また、私がLibertyプロファイルを使用するときにも動作します。また、Z/osとIPAS上では期待通りに動作します。
私は、クラスローディングには何かがあるかもしれないと思っていますが、これを正しく解決する方法はありません。
[13-9:Eclipseのネオンを使用
は、コンポーネントこれはスタックトレースの最初の部分でのJava 6
を使用している間 プロジェクトは、Java 8を使用しているJEE6、8.5.5.11完全プロフィールWAS -17 14:54:26:589 CEST] 0000003e InjectionProc W CWNEN0047W:BestelFacadeクラスのフィールドのリソース注釈は無視されます。注釈があるためEXC eptionを得ることができなかった。java.lang.Class.getDeclaredFieldsImplでロガー (ネイティブメソッド)
おかげ
JARはどこに配置されていますか(ear/libまたはwar/lib)?どのBeanに含まれていますか(純粋なCDI、またはEJBステートレス/ステートフルBean)? 'NoClassDefFoundError'もここに貼り付けてください。 – Siliarus
クラスのクラスファイルは、これを行おうとしているクラスローダーでは使用できません。あなたはおそらく他の場所に置く必要があります。 –
@Siliarus jarファイルは他のファイルと同じように依存関係にあります。私が知っている限り、それは純粋なCDI beanを含んでいます(私が使用したアノテーションは@Dependentです)。エラーについては、編集した質問を参照してください。 – Bgvv1983