私はJBoss 4.2.3、EJB2、XDocletを使用しており、EJBを含む1つのEARと、その中にさまざまなWebサイトを持つ他のEARをデプロイしています。NoClassDefFoundError for EJBホームクラス
Webサイトの1つからEJBにアクセスしようとすると、NoClassDefFoundErrorが返されます。 検索が成功したようです。たとえば、getContext().lookup(SecurityServiceRemoteHome.JNDI_NAME)
が "$ Proxy266"というクラスを返すことがわかります。どこ誤りである、右のルックアップの後、私はこれを呼ぶ "リモートEJB/IFactoryです/ SecurityService /"
remote (proxy: $Proxy266 implements interface com.icumed.ifactory.service.session.SecurityServiceRemoteHome,interface javax.ejb.Handle)
FYI、SecurityServiceRemoteHome.JNDI_NAME =
を:私はまた、この結合のJBossのJNDIビューで見ますスローされます。
home = (SecurityServiceRemoteHome)PortableRemoteObject.narrow(obj,
SecurityServiceRemoteHome.class);
私は、これは不要かもしれないと私はちょうどここにストレート型変換を行うことができますが、私はそれが問題だとは思わないと聞きました。今まで私がWebで読んだことから、SecurityServiceRemoteHomeが完全にロードされないように思えるかもしれません。おそらく、いくつかの補助的なクラスがありません?私はこれを示すどんなエラーも見ません。これをデバッグする最良の方法は何ですか?
Ok、* that *は問題ありませんでした。私はいくつかのデバッグを追加し、スーパークラス、インタフェース、メソッドの戻り値の型、およびメソッドのパラメータについて、すべての単一クラス定義を記録することができました。だから、どのようにファーストクラスのdef SecurityServiceRemoteHomeが見つからないのですか? –
ああ、あなたが私を助けてくれるかもしれない何かがあります。例外の拡張メッセージは次のとおりです。 java.lang.ClassNotFoundException:ClassLoaderが見つかりません:... SecurityServiceRemoteHome –
およびSecurityServiceRemoteHomeおよびそれに依存するすべてのクラスは、同じクラスローダーを持つようです:org.jboss.mx.loading.UnifiedClassLoader3 –