我使用 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.我应该把 foo.jar 和 ejb3 jar 放在哪里?
提前致谢