[BeanSession] Problème Remote Interface
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
Code:
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;
...
} |
Un Bean Façade associé :
Code:
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;
}
} |
remarque :Ce beanFacade implémente la facade locale, ce qui ne pose pas de soucis.
Un BeanSession : c'est donc lui que j'aimerai pouvoir invoquer depuis depuis une autre application. Il est donc remote.
Code:
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;
}
} |
Elle implémente donc STR_BS_GeneralRemote qui est dans ma deuxième application.
Voici le code du STR_BS_GeneralRemote :
Code:
1 2 3 4 5 6
| @Remote
public interface STR_BS_GeneralRemote {
Entite.LigneBus CreationLigneBus(String LibelleLigneBus);
} |
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.
==============================
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.