Reflection 如何在EJB3实体中使用Java反射API?
我使用Eclipse3.5、JBoss4.2、EJB3执行以下步骤,但我面临类NotFoundException 1.将此代码编译为foo.jar文件Reflection 如何在EJB3实体中使用Java反射API?,reflection,jboss,ejb-3.0,stateless-session-bean,Reflection,Jboss,Ejb 3.0,Stateless Session Bean,我使用Eclipse3.5、JBoss4.2、EJB3执行以下步骤,但我面临类NotFoundException 1.将此代码编译为foo.jar文件 package mypackage.foo; import myejbpackage.ejb.fooInterface; class foo implements fooInterface{ @override void helloWorld(){System.out.print("HelloWorld");} } 注意,中的f
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.然后部署到JBoss4.2,并将foo.jar放在default/lib中
5.然后使用简单客户端调用EJB3方法
它打印:
"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一起使用
提前感谢产生此问题的原因是循环依赖