Comment puis-je utiliser Java API de réflexion au sein de l'entité EJB 3?
-
24-09-2019 - |
Question
Je fais les étapes suivantes avec Eclipse 3.5, JBoss 4.2, EJB3, mais je fais face exception classe not found
1.compiling ce code foo.jar fichier
package mypackage.foo;
import myejbpackage.ejb.fooInterface;
class foo implements fooInterface{
@override
void helloWorld(){System.out.print("HelloWorld");}
}
Notez que l'interface fooInterface en est écrit à l'intérieur que l'on utilise EJB
réflexion 2.Grâce, je prends une instance de cette classe, également avec le même ejb
package myejbpackage.ejb;
class fooCaller{
void call(){
Class foo= Class.forName("mypackage.foo.foo");
fooInterface iDataBackupWriter = (fooInterface) foo.newInstance (); fooInterface.helloWorld (); } }
3.Then appeler au sein ejb3 sans état
package myejbpackage.ejb;
test(){
System.Out.Write("before calling");
new fooCaller().call();
}
4.Ensuite déploiement sur Jboss 4,2 et puting et foo.jar en défaut / lib
5.then appelant le EJB3 client simple method.using
impression:
"before calling"
et l'exception suivante se produit dans la console d'éclipse
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
Toute suggestion? 1.Is cette exception JBOOS, pourquoi? 1. Lorsque je devrais mettre le foo.jar à l'abeille vu avec le pot EJB3?
merci à l'avance
La solution
il y avait une dépendance circulaire qui génèrent ce problème