Message cross-posté car je pense l'avoir posté la première fois au mauvais endroit (gklassfish)
Bonjour,
Je me sens tout bête de demander de l'aide.
Je vais essayer d'être le plus exhaustif possible.
Mon objectif est simple : une application EE, doit appeler une BeanSession d'une autre Application EE.
=======
Je travaille sur Netbean 7.1
avec Glassfish server 3.1.2
Dans ma première application :
- Un Bean Entité : LigneBus
Un Bean Façade associé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 @Entity public class LigneBus implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private String LibelleLigneBus; ... }
remarque :Ce beanFacade implémente la facade locale, ce qui ne pose pas de soucis.
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 @Stateless public class LigneBusFacade extends AbstractFacade<LigneBus> implements LigneBusFacadeLocal { @PersistenceContext(unitName = "Societe_Transport_Routier-ejbPU") private EntityManager em; @Override protected EntityManager getEntityManager() { return em; } public LigneBusFacade() { super(LigneBus.class); } @Override public LigneBus CreationLigneBus(String LibelleLigneBus) { LigneBus LB=new LigneBus(); LB.setLibelleLigneBus(LibelleLigneBus); em.persist(LB); return LB; } }
Un BeanSession : c'est donc lui que j'aimerai pouvoir invoquer depuis depuis une autre application. Il est donc remote.
Elle implémente donc STR_BS_GeneralRemote qui est dans ma deuxième application.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 @Stateful public class STR_BS_General implements STR_BS_GeneralRemote { @Override public LigneBus CreationLigneBus(String LibelleLigneBus) { return null; } }
Voici le code du STR_BS_GeneralRemote :
Dans ma deuxième application EE, je veux invoquer dans une servlet par exemple les business méthodes pour créer une ligne de bus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 @Remote public interface STR_BS_GeneralRemote { Entite.LigneBus CreationLigneBus(String LibelleLigneBus); }
==============================
Problème :
- Si dans le projet 1, celui qui contient le beanEntité/Facade/BeanSession
je référence le mon deuxième projet (qui lui contient l'interface remote), pas de soucis pour le projet 1. Par contre, dans la deuxième application, l'interface remote ne connait pas l'entité "LigneBus" de l'application 1 ! Donc pas possible de déployer.
- Si je référence le projet 1 à partir du projet 2. Il me dit "Impossible d'ajouter des références Cyclique" !
- Si je retire la référence du projet 2 dans le projet 1, je peux référencer le projet 1 dans le projet 2. Mais là, c'est le BeanSession qui pose problème car il ne sait pas où chercher l'interface emote qu'il implémente.
=> bref, je suis coincé.
Je suis preneur de toute aide.
Merci d'avance.
Je reste avec le navigateur allumé pour rajouter des infos si nécessaires le plus rapidement possible.
Partager