Bonjour,
Je me suis mis au EJB3 depuis quelques semaines maintenant (Netbeans 6 beta + Glassfish v2 + PostgreSQL 8.2). J'ai assimilé un certain nombre de chose à leur sujet mais j'ai une question concernant l'architecture d'une application se voulant le plus modulaire possible. Je m'explique :
Un module d'une application gère par exemple un carnet d'adresse. Je n'ai eu aucune problème pour créer un EJB Entity qui gère la persistance dans une table PostgreSQL ni pour créer un EJB Session (stateless/remote) avec un set de méthodes d'interrogation. J'ai ensuite créé un client java SE qui accède à l'EJB Session à l'aide d'un fichier jndi.properties.
Mon problème c'est que dans cet façon de faire il faut inclure le jar de l'EJB dans le classpath du client ! Or j'aimerais une application plus modulaire, soit pouvoir redévelopper une version différente d'un module côté serveur (même interface) et pouvoir utiliser soit l'un soit l'autre lors d'un déploiement. Et ceci à la volée grâce à un gestionnaire de module.
J'ai tenté de placer l'interface remote dans un module et le code du stateless bean dans un autre mais le module d'interface refuse de compiler car il ne contient aucun EJB !
J'ai fait plein d'autre tentative mais rien de fonctionne...
Quel architecture serait adaptée à un tel besoin ? Peut-être faudrait-il un bus de services mais au final je ne vois pas comment me passer d'inclure le jar contenant le code métier dans le classpath du reste de l'application...
C'est pourtant nécessaire si l'on veut vraiment de la modularité !
Partager