IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

Utiliser Spring avec EJB


Sujet :

Spring Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Utiliser Spring avec EJB
    Bonjour à tous,

    Je voudrais vous présenter mon projet open source: "fast4j :: EJB Bridge".
    Ce projet vous permet de déployer dans un conteneur JEE des services Spring définis dans un contexte "classique". Toutes les fonctionnalités offertes par Spring (gestion des transactions, AOP, etc...) sont conservées. Les services Spring peuvent alors être accédés par un client EJB de manière complètement transparente !

    Evidemment, vous pouvez développer vos services en dehors du conteneur JEE, comme des services Spring classiques, ce qui est un grand avantage. Plus besoin de redéployer des EJB pour tester vos services !

    N'hésitez pas à y jeter un oeil : c'est open source, et je suis ouvert aux critiques !

    http://code.google.com/p/fast4j

    Alexandre ROMAN

  2. #2
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    Après une première lecture de ton projet, peut être un peu trop rapidemment, l'intérêt m'échappe totalement vu ce que Spring propose déjà.
    J'ai peut être raté un truc ?!

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Spring propose de construire un contexte d'application derrière un EJB. Lorsque ton EJB Session est créé, le contexte s'initialise et tu peux alors l'utiliser.

    Le but de mon projet est d'augmenter la productivité des développeurs, en créant des services basés sur des POJO, gérés par Spring. En phase de développement, nul besoin de déployer ces services dans un conteneur pour les tester. Tu bénéficies également de toutes les fonctionnalités de Spring pour tes services (AspectJ, etc...).

    Lorsque tu es prêt, tu packages tes services avec ejbbridge dans un EAR que tu déploies dans un conteneur JEE, et tous tes services Spring pourront être accédés par un client EJB. Un EJB session facade délègue tous les appels aux services Spring.

    Ainsi, tu combines le meilleur des deux mondes : la rapidité et la souplesse de développement avec Spring, et la capacité de déployer tes services dans un conteneur JEE. Pour les clients accédant à tes services, c'est complètement transparent !

    Qui plus est, tu peux gérer avec ejbbridge un contexte par appel de service. Cela te permet de passer des métadonnées lors de chaque appel, de l'exploiter/modifier au niveau de tes services, et de le récupérer au retour. Ce mécanisme me permet de gérer un conteneur de messages d'erreur, alimentés par mes services (je suis en mesure de gérer des messages sans pour autant lever d'exception : j'ai le choix), et de connaître l'identité de l'utilisateur connecté.

    J'espère avoir été clair

  4. #4
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    Mais le principe du pattern "Business Interface" où une interface Java est à la fois implémentée par l'interface Remote d'un EJB et par un POJO me semble convenir à ton besoin.
    Dans ce cas, EJB ne fait que de la délégation vers le POJO. Le POJO peut donc être déployé hors serveur d'application.
    L'EJB n'est pas connu du client; le client ne connait que la "business interface" et va, dans la factory Spring, récupérer le service sans savoir qu'il est ou non "remote".
    Au final, tu peux tester le client et le serveur en dehors d'un serveur d'application. Si en plus tu utilises XDoclet, tu dois pouvoir générer l'implémentation de l'EJB qui n'a qu'à faire de la délégation.
    Et pour finir, tu peux avoir 2 versions de la "business interface", une qui lance des RemoteException et l'autre (celle connue du client) qui ne remonte pas ces RemoteException; ainsi le client n'est pas pollué par l'aspect distribution.

    Est-ce que ton projet va plus loin que cela ?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    En fait, ejbbridge propose aux développeurs une approche simple et rapide de ce que tu viens de décrire. Nul besoin de passer par XDoclet pour générer le code de chaque EJB, ejbbridge déclare déjà un EJB de façade. On développe "simplement" le service avec Spring, et ejbbridge devient la cerise sur la gâteau : l'intégration et le déploiement dans un conteneur JEE devient un jeu d'enfant. Il n'y a (presque) rien à faire !

    L'autre idée qui me plaît avec ejbbridge, c'est la possiblité d'utiliser l'équivalent d'un contexte de service. Ce contexte naît côté client, et peut contenir toute sorte d'infos. Il arrive côté service métier, qui peut alors le remplir à son tour et exploiter les données envoyées par le client. Lorsque le client reçoit le résultat du service, le contexte est également disponible. A mon sens, cela ouvre pas mal de possibilités. Il y a un exemple d'utilisation dans l'archive téléchargeable : je te laisse faire ton propre avis

  6. #6
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    ok, je vais prendre plus de temps pour regarder

Discussions similaires

  1. Utiliser Spring avec Eclipse
    Par NGeVtC87 dans le forum Spring
    Réponses: 1
    Dernier message: 05/02/2010, 10h05
  2. Utilisation spring avec jsf
    Par rushtakn dans le forum JSF
    Réponses: 9
    Dernier message: 16/06/2009, 09h30
  3. Faut-il combiner Spring avec Struts ou utiliser Spring MVC ?
    Par micanti dans le forum Frameworks Web
    Réponses: 3
    Dernier message: 23/04/2007, 16h31
  4. Utilisation de Spring avec un client lourd
    Par speedster dans le forum Spring
    Réponses: 30
    Dernier message: 15/03/2007, 14h23
  5. [Data] utiliser Hibernate avec Spring
    Par badi082 dans le forum Spring
    Réponses: 4
    Dernier message: 13/03/2007, 09h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo