2010-01-29 19 views
0

Je fais les étapes suivantes avec Eclipse 3.5, JBoss 4.2, EJB3, mais je fais face à la classe ne trouve pas exceptionComment utiliser l'API Java Reflection dans l'entité EJB 3?

1.compiling ce code dans le fichier foo.jar

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 de l'EJB utilisé

de 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 à Jboss 4.2 et et puting foo.jar en défaut/lib

5.then appeler la ejb 3 method.using client simple

il print:

"before calling" 

et l'exception suivante se produit dans la console 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 

Toute suggestion? 1.Is cette exception de JBOOS, pourquoi? 1.Où devrais-je mettre le foo.jar à voir avec le bocal ejb3?

merci à l'avance

Répondre

0

il y avait une dépendance circulaire qui génèrent ce problème