Bonjour à tous,
J'ai posé la dernière fois le problème de dépendances circulaires entre EJB sur le Forum de Jboss, il ya quelqu'un qui m'a suggérer d'utiliser l'annotation @ IgnoreDependency( fabriqué par Jboss) à une des instances lors de l'injection de dépendance avec @EJB.
celà résout le problème à moitié:
J'explique:
quand j'utiliser par défaut l'injection de dépendance @ EJB sans préciser l'attribut name, Jboss résoudre la référence en utilisant le nom par défaut, dans ce cas @ IgnoreDependency fonctionne bien.
Par contre, quand je specifié le nom de référence (@ EJB (name = "ejb / someEJB "...) celà ne fonctionne pas.
exemple:
dans ce cas, j'ai ce probleme de deploiment :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 Hello1Bean classe : @EJBs( { @EJB(name="ejb/Hello2", beanInterface=Hello2.class, beanName="Hello2Bean") }) public @Stateless class Hello1Bean implements Hello1 { @IgnoreDependency @EJB(name="ejb/Hello2") private Hello2 hello; and Hello2Bean Classe : @EJBs( {@EJB(name="ejb/Hello1", beanInterface=Hello1.class,beanName="Hello1Bean") }) public @Stateless class Hello2LocalBean implements Hello2Local { @IgnoreDependency @EJB(name="ejb/Hello1") private Hello1 hello;
pour information, j'utilise Jboss 4.2.2 GA sous windows XP.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15--- MBeans waiting for other MBeans --- ObjectName: jboss.j2ee:jar=cyclic.jar,name=Hello2Bean,service=EJB3 State: NOTYETINSTALLED I Depend On: jboss.j2ee:jar=cyclic.jar,name=Hello1Bean,service=EJB3 Depends On Me: jboss.j2ee:jar=cyclic.jar,name=Hello1Bean,service=EJB3 ObjectName: jboss.j2ee:jar=cyclic.jar,name=Hello1Bean,service=EJB3 State: NOTYETINSTALLED I Depend On: jboss.j2ee:jar=cyclic.jar,name=Hello2Bean,service=EJB3 Depends On Me: jboss.j2ee:jar=cyclic.jar,name=Hello2Bean,service=EJB3
si quelqu'un a une solution, je travaille actuellement sur la migration d'une application réelle, et j'ai un problème sérieux pour progresser.
Merci par avance.
Partager