Bonjour,
Je débute en J2EE et je me pose une question concernant les EJB et plus particulièrement l'utilisation distante de ces derniers via une application cliente.
J'ai fait de nombreuses recherches à ce sujet et très souvent, je voyais le même schéma où l'application locale dialoguait avec le serveur d'EJB distant.
Dans l'application cliente qui s'exécute en local, j'ai cru comprendre que, typiquement, on écrit un code ressemblant à ceci :
J'ai lu aussi que l'architecture J2EE multi-tiers permet de réduire les coûts de déploiement lorsqu'on change de version parce la logique métier se trouve sur le serveur... Ok, admettons.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 import javax.naming.InitialContext; import test.ejb.*; //Package contenant mes EJB DISTANTS Properties props = new Properties(); props.load (new FileInputStream("jndi.properties"); //Je charge mon fichier de config jndi InitialContext context = new javax.naming.InitialContext(props); test.ejb.MonSuperBeanHome home = (MonSuperBeanHome) context.lookup("ejb/MonSuperBean"; test.ejb.MonSuperBeanRemote monSuperBean = home.create();
Mais ce que je ne comprends pas, c'est que, pour faire un
mon package doit bien se trouver dans mon classpath, non ???
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2import test.ejb.*;
Or, si les EJB sont uniquement sur le serveur distant, comment les avoir dans le classpath local autrement qu'en incluant les fichiers .class de mes EJB dans l'application locale ?
Si ma précédente hypothèse est exacte, je ne vois pas 36 solutions :
Solution 1 : On est obligés de créer un lecteur réseau (Windows)/créer une partition NFS (Unix) ou une autre méthode de ce type ? Je trouve que cette solution ressemblerait à du bricolage mais bon, pourquoi pas...
Solution 2 : On créé un jar de notre appli locale et qu'on y inclut les fichiers .class de nos EJB. Dans ce cas, si l'interface des EJB change, faut changer le .jar en local et donc nous ne sommes plus dans l'optique "L'architecture J2EE multi-tiers permet de réduire les coûts de déploiement lorsqu'on change de version parce la logique métier se trouve sur le serveur.
Bref, cet aspect du fonctionnement des EJB me semble obscur et si quelqu'un pouvait m'éclairer à ce sujet, je le remercie d'avance.
Partager