私はEclipse 3.5、JBoss 4.2、EJB3で次の手順を実行しますが、クラスが見つからないという例外に直面しています
1.このコードを foo.jar ファイルにコンパイルする
package mypackage.foo;
import myejbpackage.ejb.fooInterface;
class foo implements fooInterface{
@override
void helloWorld(){System.out.print("HelloWorld");}
}
fooInterface インターフェースは、使用する EJB 内に記述されていることに注意してください。
2. リフレクションを使用して、同じ ejb を持つこのクラスからインスタンスを取得します
package myejbpackage.ejb;
class fooCaller{
void call(){
Class foo= Class.forName("mypackage.foo.foo");
fooInterface iDataBackupWriter =(fooInterface) foo.newInstance(); fooInterface.helloWorld(); } }
3.次に、ステートレス ejb3 内で呼び出します
package myejbpackage.ejb;
test(){
System.Out.Write("before calling");
new fooCaller().call();
}
4.次に、Jboss 4.2 にデプロイし、foo.jar を default/lib に配置します。
5. 次に、ejb 3 メソッドを呼び出します。単純なクライアントを使用します。
それは印刷します:
"before calling"
そして、Eclipseコンソールで次の例外が発生します
javax.ejb.EJBException: java.lang.RuntimeException: java.lang.NoClassDefFoundError: myejbpackage/ejb/fooInterface; nested exception is: java.lang.RuntimeException: java.lang.NoClassDefFoundError: myejbpackage/ejb/fooInterface
java.lang.RuntimeException: java.lang.NoClassDefFoundError:myejbpackage/ejb/fooInterface
なにか提案を ?1.これは JBOOS の例外ですか? なぜですか? 1. ejb3 jar で見られるように、foo.jar をどこに置くべきですか?
前もって感謝します