EJB3: Session de Beans                         1
Agenda Session de BeansDéploiement des projets EJB au serveurLes clients distants pour les Session de BeansSession de ...
Aperçu         3
Avantages d’EJB Encapsuler la logique – La logique métier séparé de contrôle et de présentation laccès à distance – Appl...
Désavantages de EJB La complexité   Bien EJB3 pourrait être plus simple que les systèmes RemoteObject autre, à    distan...
Utilisation de lIndustrie (Mots-clés dansOffres demploi dans le monde)                                        6
Session Beans: Aperçu session de Beans   Sur le serveur, vous faites linterface (marqué avec @ Remote) et    POJO quelle...
session Beans sans état                          8
session Beans sans état: Idée POJOs   Ordinaire des classes Java; pas dinterfaces ou des classes    spéciales parent. Fo...
session Beans sans état: Approche• Faire nouvel EJB projet  – fichier   Nouveau        EJB Project   • Possibilité de choi...
EJB Project faire des projets   fichier           nouveau       EJB Project   Choisissez un nom   JBoss ou Glassfish c...
Interface            12
Classe qui implémente linterface                                    13
Les clients de session de    Beans sans état                            14
Idée Les clients estiment que le bean par JNDI   Client Java code ne sais même pas la machine sur laquelle réside le    ...
Projet client distant Fait nouveau projet Web dynamique   Choisir chanceux numéros-client que le nom   Choisir que JBos...
Distance autonome (bureau) du client                                       17
Remarque sur le nom de context.lookup Numéro   Vous passez un nom à context.lookup. Si vous utilisez   simplement @ Remo...
Remote Client: jndi.properties                                 19
Standalone client distant: Résultats lucky-numbers (EJB Project)   Déployé à JBoss ou Glassfish. La sortie est la même ...
Client Web à distance (Servlet)                                  21
Client Web à distance(Servlet Suite)                                       22
Client Web à distance(web.xml)                                 23
Client Web à distance(Résultats deJBoss 5)                                     24
Client Web à distance(Résultats Glassfish2.1)                                       25
Utilisation de @ EJB pouraccéder à des beans locaux                         26
Idée Utilisez @ EJB, avant variable dinstance   Bean sera automatiquement instanciée et assignée. Par exemple:   @ dEJB...
Exemple: Interface dEJB                           28
Exemple: classe EJB qui Implémenteinterface                                     29
Exemple: client distant (Servlet)                                    30
Exemple: client distant (Servlet Suite)                                          31
Client à distant: jndi.properties                                    32
Exemple: Client à distant(web.xml)                                     33
Exemple: Résultats (JBoss 5)                               34
Exemple: Résultats (Glassfish 2.1)                                     35
Sessions Dynamiques de         Beans                         36
Sessions Dynamiques de Beans: Idée POJOs   Ordinaire des classes Java; aucune des interfaces spéciales    ou dun parent ...
Sessions Dynamiques de Beans : Approche Faire nouvel EJB projet   Fichier Nouveau projet EJB Définir une interface   ...
Exemple: Interface d’EJB                           39
Exemple: Classe EJB qui implémentelinterface                                     40
Exemple: Classe EJB qui implémentelinterface (suite)                                     41
Exemple: client distant (Servlet)                                    42
Exemple: client distant (Servlet Suite)                                          43
Exemple: : client distant (JSP)                                  44
Exemple: client distant (jndi.properties)                                       45
Exemple: : client distant (web.xml)                                      46
Exemple: client distant (formulaire desaisie)                                         47
Résultats : client distant (JBoss 5)                                       48
Résultat: client distant (Glassfish 2.1)                                           49
Récapitulation                 50
Livres et références EJB 3 en action   Debu Panda, Reza Rahman, et Derek Lane (Manning) Enterprise JavaBeans 3.0 (5e éd...
Résumer Session de Beans   Interface: marque avec @ Remote   Classe: marque avec @ Stateless (mappedName = "blah") Ses...
Questions?             53
Prochain SlideShare
Chargement dans…5
×

Ejb3 2-session-beans fr

1 399 vues

Publié le

0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 399
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
63
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Ejb3 2-session-beans fr

  1. 1. EJB3: Session de Beans 1
  2. 2. Agenda Session de BeansDéploiement des projets EJB au serveurLes clients distants pour les Session de BeansSession de beans sans étatLaccès local aux EJB 2
  3. 3. Aperçu 3
  4. 4. Avantages d’EJB Encapsuler la logique – La logique métier séparé de contrôle et de présentation laccès à distance – Applications multiples sur différents serveurs peuvent accéder EJB la simplicité – Relativement facile à utiliser par rapport aux autres systèmes à distance dobjets Large soutien aux fournisseurs – JBoss, Oracle AS, WebLogic, WebSphere, Glassfish, etc évolutivité – Pratiquement tous les app Java EE en charge les serveurs de clustering, équilibrage de charge et de basculement 4
  5. 5. Désavantages de EJB La complexité  Bien EJB3 pourrait être plus simple que les systèmes RemoteObject autre, à distance objet-cadres sont beaucoup plus complexes que locale-objet dapproches.  Le printemps est plus facile et plus puissant pour laccès local Nécessite le serveur Java EE  Impossible dexécuter sur Tomcat, Jetty, Resin, JRun, Résine  Serveurs Java EE sont généralement beaucoup plus difficile à configurer, considérablement plus lent à démarrer / redémarrer au cours du développement et de test, et coûtent généralement de largent Nécessite la dernière version de Java EE version  Doit mettre à niveau vers les derniers communiqués de serveur Mauvaise réputation à cause de versions antérieures  EJB2 était si complexe que les EJB a mauvaise réputation à ce jour 5
  6. 6. Utilisation de lIndustrie (Mots-clés dansOffres demploi dans le monde) 6
  7. 7. Session Beans: Aperçu session de Beans  Sur le serveur, vous faites linterface (marqué avec @ Remote) et POJO quelle met en œuvre (marqués avec @ Stateless)  Ordinaires objet Java avec les méthodes ordinaires qui utilisent des objets Java ordinaires comme arguments et les types de retour  Aucun Etat (vars exemple) maintenu entre les appels de méthode Le client utilise InitialContext.lookup ("nom") pour obtenir la réf. Client effectue des appels de méthode normale (données sérialisées sur le net.) Session EJB sans état  Mark POJO avec @ Stateful au lieu de @ Stateless  Mark méthode spéciale avec @ Remove  Le client ne similaires appels de recherche et de méthode, mais il doit appeler la méthode particulière lorsque vous avez terminé.  Etat (vars exemple) maintenu jusquà ce que cette méthode appelée 7
  8. 8. session Beans sans état 8
  9. 9. session Beans sans état: Idée POJOs  Ordinaire des classes Java; pas dinterfaces ou des classes spéciales parent. Fournissent souvent une sorte de service telles que la cartographie des identifications client à des objets à la clientèle. Laccès local ou à distance  Peut être consulté soit sur serveur dapplication locale (même machine que soft qui utilise les beans) ou serveur dapplication distant (machine différente du soft qui utilise les beans) Ne pas maintenir létat du client  Les variables dinstance sont protégés contre les conditions de course que pendant un seul appel de méthode. Faut pas stocker létat du client spécifique qui doit être accessible à travers des appels de méthodes multiples. 9
  10. 10. session Beans sans état: Approche• Faire nouvel EJB projet – fichier Nouveau EJB Project • Possibilité de choisir JBoss ou Glassfish comme exécution cible. De toute façon, vous pouvez déployer des projets à la fois aux serveurs.• Définir une interface – Marque avec @ Remote • Pour accéder à dautres serveurs ou de projets sur le même serveur – Marque avec @ Local • Pour ne permettre laccès de projets sur un même serveur (par défaut)• Créer une classe qui implémente linterface – Marque avec des apatrides par défaut du serveur JNDI cartographie @ – Marque AVEC @ Stateless (mappedName = "SomeJndiName")• Déployer application serveur – cliquez R-sur serveur, Ajouter / Supprimer des projets, de démarrer le serveur 10
  11. 11. EJB Project faire des projets  fichier nouveau EJB Project  Choisissez un nom  JBoss ou Glassfish comme cible dexécution  Vous pouvez ensuite déployer sur nimporte quel serveur compatible; vous nêtes pas limité à celui choisi initialement.  Facultatif: Ajouter à une EAR  Si vous faites Projet web dynamique plus tard tard qui veut utiliser @ EJB, vous pouvez lajouter à la même EAR Déploiement de projet  cliquez R-sur JBoss ou Glassfish (ou tout autre serveur Java EE 5 que vous avez enregistré avec Eclipse), Ajouter et supprimer des projets, choisissez Projet, Ajouter, Terminer  cliquez R-sur JBoss ou Glassfish (ou autre), Démarrer 11
  12. 12. Interface 12
  13. 13. Classe qui implémente linterface 13
  14. 14. Les clients de session de Beans sans état 14
  15. 15. Idée Les clients estiment que le bean par JNDI  Client Java code ne sais même pas la machine sur laquelle réside le bean Les clients utilisent bean comme un POJO normal  Mais les arguments et les valeurs de retour sont envoyés à travers le réseau  Ainsi, les classes personnalisées doivent être sérialisables Code de base InitialContext context = new InitialContext(); InterfaceName bean = (InterfaceName)context.lookup("JNDI-Name");jndi.properties  Fichier texte dans le classpath; donne URL distante et dautres infos 15
  16. 16. Projet client distant Fait nouveau projet Web dynamique  Choisir chanceux numéros-client que le nom  Choisir que JBoss 5 dexécution cible  Peuvent être déployées pour Glassfish ou dautres serveurs Java EE 5 jndi.properties  Fichier texte créé, appelé «jndi.properties" dans le dossier src  Doit donner URL distante. Souvent dautres infos. Spécifiques du serveur!  Détails montré dans la diapositive à venir Déploiement  Na pas besoin de courir sur la même machine que le Projet dEJB.  Autonome (bureau) les clients nont pas besoin dêtre déployé sur nimporte quel serveur dapplication, ils peuvent simplement avoir une "main" méthode.  Applications Web devrait être déployée sur un serveur Java EE 5 app 16
  17. 17. Distance autonome (bureau) du client 17
  18. 18. Remarque sur le nom de context.lookup Numéro  Vous passez un nom à context.lookup. Si vous utilisez simplement @ Remote sans mappedName, le nom par défaut est différents pour JBoss que pour Glassfish (ou autres serveurs).  Dans JBoss, le nom JNDI serait "NumberServiceBean/remote"  En Glassfish, le nom JNDI serait "coreservlets.bean.NumberService« Solution: utiliser mappedName  Jutilise @ Stateless (mappedName = "NumberCreator")  au lieu de simplement @ Stateless  Donc, je peux utiliser le même nom (NumberCreator) quel que soit  dont le serveur du projet EJB est déployé pour 18
  19. 19. Remote Client: jndi.properties 19
  20. 20. Standalone client distant: Résultats lucky-numbers (EJB Project)  Déployé à JBoss ou Glassfish. La sortie est la même lucky-nombres-client (Proj Web dynamique.)  Pas encore déployé sur nimporte quel serveur.  jndi.properties correspond au serveur dEJB projet sortie 20
  21. 21. Client Web à distance (Servlet) 21
  22. 22. Client Web à distance(Servlet Suite) 22
  23. 23. Client Web à distance(web.xml) 23
  24. 24. Client Web à distance(Résultats deJBoss 5) 24
  25. 25. Client Web à distance(Résultats Glassfish2.1) 25
  26. 26. Utilisation de @ EJB pouraccéder à des beans locaux 26
  27. 27. Idée Utilisez @ EJB, avant variable dinstance  Bean sera automatiquement instanciée et assignée. Par exemple:  @ dEJB privés Certains services mon service; utile pour les  Un EJB qui utilise un autre dEJB dans le cadre de sa logique  Toujours une bonne idée puisque les EJBs sont habituellement ensemble  De multiples applications Web qui utilisent la même logique métier  Plus simple, mais application Web ne peut pas passer au serveur distant restrictions  Avant de variables dinstance, les variables non locales.  Les deux classes doivent faire partie du même EAR sur le même serveur  Dans Eclipse, toutes les classes dans un seul projet dEJB satisfaire cette  Si vous utilisez un projet EJB (EJB) et des projets web dynamiques (les classes qui utilisent les EJB), vous devez choisir "Ajouter un projet à une EAR» et spécifiez un même 27
  28. 28. Exemple: Interface dEJB 28
  29. 29. Exemple: classe EJB qui Implémenteinterface 29
  30. 30. Exemple: client distant (Servlet) 30
  31. 31. Exemple: client distant (Servlet Suite) 31
  32. 32. Client à distant: jndi.properties 32
  33. 33. Exemple: Client à distant(web.xml) 33
  34. 34. Exemple: Résultats (JBoss 5) 34
  35. 35. Exemple: Résultats (Glassfish 2.1) 35
  36. 36. Sessions Dynamiques de Beans 36
  37. 37. Sessions Dynamiques de Beans: Idée POJOs  Ordinaire des classes Java; aucune des interfaces spéciales ou dun parent classes. Fournissent souvent une sorte de service qui stocke informations (temporairement) ainsi que de lenvoyer. Local ou accès à distant  Peut être consulté soit sur serveur dapplication locale (même machine comme soft qui utilise les beans) ou serveur dapplication à distance (différents machine à partir de app qui utilise les beans) Maintenir létat du client  Vous pouvez configurer les beans avec le client-spécifiques dinformations, daccéder ensuite au info (sans crainte de la race conditions) jusquà ce que vous appelez la méthode spéciale marquée avec @ Remove. 37
  38. 38. Sessions Dynamiques de Beans : Approche Faire nouvel EJB projet  Fichier Nouveau projet EJB Définir une interface  Marque avec @ Remote  Pour accéder à dautres serveurs ou de projets sur le même serveur  Marque avec @ Local  Pour ne permettre laccès de projets sur un même serveur (par défaut) Créer une classe qui implémente linterface  Marque avec @ Dynamique pour serveur JNDI cartographie  Marque avec @ (Stateful mappedName = "SomeJndiName")  Marquer une méthode avec @ Retirer  Lorsquelle est appelée, le serveur termine la session et linstance de GC Déployer application serveur  cliquez R-sur serveur, Ajouter / Supprimer des projets, de démarrer le serveur 38
  39. 39. Exemple: Interface d’EJB 39
  40. 40. Exemple: Classe EJB qui implémentelinterface 40
  41. 41. Exemple: Classe EJB qui implémentelinterface (suite) 41
  42. 42. Exemple: client distant (Servlet) 42
  43. 43. Exemple: client distant (Servlet Suite) 43
  44. 44. Exemple: : client distant (JSP) 44
  45. 45. Exemple: client distant (jndi.properties) 45
  46. 46. Exemple: : client distant (web.xml) 46
  47. 47. Exemple: client distant (formulaire desaisie) 47
  48. 48. Résultats : client distant (JBoss 5) 48
  49. 49. Résultat: client distant (Glassfish 2.1) 49
  50. 50. Récapitulation 50
  51. 51. Livres et références EJB 3 en action  Debu Panda, Reza Rahman, et Derek Lane (Manning) Enterprise JavaBeans 3.0 (5e édition)  Bill Burke et Richard Monson-Haefel (OReilly) Tutoriel Java EE 5 (EJB section)  http://java.sun.com/javaee/5/docs/tutorial/doc/bnblr.html JBoss EJB3 Tutoriel  http://docs.jboss.com/ejb3/app-server/tutorial/ Glassfish EJB FAQ  https://glassfish.dev.java.net/javaee5/ejb/EJB_FAQ.html Cay Horstmann EJB Tutoriel  http://www.horstmann.com/elvis/elvis-meets-glassfish.html 51
  52. 52. Résumer Session de Beans  Interface: marque avec @ Remote  Classe: marque avec @ Stateless (mappedName = "blah") Session d’ EJB Dynamique  Classe Marque avec @ Dynamique lieu de @ Stateless  Marquer une méthode avec @ Retirer session Clients bean InitialContext context = new InitialContext (); InterfaceType var = (InterfaceType) context.lookup ("blah"); var.someMethod (args);  Pour les beans avec état, appelez la méthode spécialement marqués lorsque vous avez terminé  Besoin jndi.properties spécifiques au type de serveur Laccès local aux beans @EJB private InterfaceType var; 52
  53. 53. Questions? 53

×