SlideShare une entreprise Scribd logo
1  sur  53
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 beans sans état

L'accès local aux EJB

                                            2
Aperçu



         3
Avantages d’EJB
 Encapsuler la logique
 – La logique métier séparé de contrôle et de présentation
 l'accès à distance
 – Applications multiples sur différents serveurs peuvent accéder EJB
 la simplicité
 – Relativement facile à utiliser par rapport aux autres systèmes à
 distance d'objets
 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
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
    d'approches.
   Le printemps est plus facile et plus puissant pour l'accès local
 Nécessite le serveur Java EE
   Impossible d'exé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 l'argent
 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
Utilisation de l'Industrie (Mots-clés dans
Offres d'emploi dans le monde)




                                        6
Session Beans: Aperçu
 session de Beans
   Sur le serveur, vous faites l'interface (marqué avec @ Remote) et
    POJO qu'elle 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
session Beans sans état




                          8
session Beans sans état: Idée
 POJOs
   Ordinaire des classes Java; pas d'interfaces ou des classes
    spéciales parent. Fournissent souvent une sorte de service telles
    que la cartographie des identifications client à des objets à la
    clientèle.
 L'accès local ou à distance
   Peut être consulté soit sur serveur d'application locale (même machine
     que soft qui utilise les beans) ou serveur d'application distant (machine
     différente du soft qui utilise les beans)


 Ne pas maintenir l'état du client
   Les variables d'instance 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
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 à d'autres serveurs ou de projets sur le même serveur
  – Marque avec @ Local
   • Pour ne permettre l'accès de projets sur un même serveur (par défaut)
• Créer une classe qui implémente l'interface
  – 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
EJB Project
 faire des projets
   fichier           nouveau       EJB Project
   Choisissez un nom
   JBoss ou Glassfish comme cible d'exécution
   Vous pouvez ensuite déployer sur n'importe 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 l'ajouter à 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
Interface




            12
Classe qui implémente l'interface




                                    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
    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 d'autres infos
                                                                  15
Projet client distant
 Fait nouveau projet Web dynamique
   Choisir chanceux numéros-client que le nom
   Choisir que JBoss 5 d'exécution cible
      Peuvent être déployées pour Glassfish ou d'autres serveurs
     Java EE 5
 jndi.properties
   Fichier texte créé, appelé «jndi.properties" dans le dossier src
   Doit donner URL distante. Souvent d'autres infos. Spécifiques du serveur!
   Détails montré dans la diapositive à venir
 Déploiement
   N'a pas besoin de courir sur la même machine que le Projet d'EJB.
   Autonome (bureau) les clients n'ont pas besoin d'être déployé sur n'importe
    quel serveur d'application, ils peuvent simplement avoir une "main" méthode.
   Applications Web devrait être déployée sur un serveur Java EE 5 app

                                                                            16
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 @ 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
   J'utilise @ 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
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
 lucky-nombres-client (Proj Web dynamique.)
   Pas encore déployé sur n'importe quel serveur.
   jndi.properties correspond au serveur d'EJB projet
 sortie




                                                          20
Client Web à distance (Servlet)




                                  21
Client Web à distance(Servlet Suite)




                                       22
Client Web à distance(web.xml)




                                 23
Client Web à distance(Résultats de
JBoss 5)




                                     24
Client Web à distance(Résultats Glassfish
2.1)




                                       25
Utilisation de @ EJB pour
accéder à des beans locaux



                         26
Idée
 Utilisez @ EJB, avant variable d'instance
   Bean sera automatiquement instanciée et assignée. Par exemple:
   @ d'EJB privés Certains services mon service;
 utile pour les
   Un EJB qui utilise un autre d'EJB 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 d'instance, 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 d'EJB
   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
Exemple: Interface d'EJB




                           28
Exemple: classe EJB qui Implémente
interface




                                     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 d'un parent classes. Fournissent souvent une sorte de
    service qui stocke informations (temporairement) ainsi que
    de l'envoyer. Local ou accès à distant
   Peut être consulté soit sur serveur d'application locale
    (même machine comme soft qui utilise les beans) ou serveur
    d'application à 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
    d'informations, d'accé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
Sessions Dynamiques de Beans : Approche

 Faire nouvel EJB projet
   Fichier Nouveau projet EJB
 Définir une interface
     Marque avec @ Remote
   Pour accéder à d'autres serveurs ou de projets sur le même serveur
   Marque avec @ Local
   Pour ne permettre l'accès de projets sur un même serveur (par défaut)
 Créer une classe qui implémente l'interface
   Marque avec @ Dynamique pour serveur JNDI cartographie
   Marque avec @ (Stateful mappedName = "SomeJndiName")
   Marquer une méthode avec @ Retirer
   Lorsqu'elle est appelée, le serveur termine la session et l'instance de
    GC
 Déployer application serveur
   cliquez R-sur serveur, Ajouter / Supprimer des projets, de démarrer le serveur
                                                                                     38
Exemple: Interface d’EJB




                           39
Exemple: Classe EJB qui implémente
l'interface




                                     40
Exemple: Classe EJB qui implémente
l'interface (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 de
saisie)




                                         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 édition)
   Bill Burke et Richard Monson-Haefel (O'Reilly)
 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
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
 L'accès local aux beans
  @EJB private InterfaceType var;
                                                                 52
Questions?




             53

Contenu connexe

Tendances

Presentation JEE et son écossystéme
Presentation JEE et son écossystémePresentation JEE et son écossystéme
Presentation JEE et son écossystémeAlgeria JUG
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EEInes Ouaz
 
J2eeintro
J2eeintroJ2eeintro
J2eeintromedbmb
 
Java Server Faces (JSF)
Java Server Faces (JSF)Java Server Faces (JSF)
Java Server Faces (JSF)Heithem Abbes
 
Développement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EEDéveloppement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EESabri Bouchlema
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications JavaAntoine Rey
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...ENSET, Université Hassan II Casablanca
 
Jsf 110530152515-phpapp01
Jsf 110530152515-phpapp01Jsf 110530152515-phpapp01
Jsf 110530152515-phpapp01Eric Bourdet
 

Tendances (19)

Presentation JEE et son écossystéme
Presentation JEE et son écossystémePresentation JEE et son écossystéme
Presentation JEE et son écossystéme
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EE
 
J2eeintro
J2eeintroJ2eeintro
J2eeintro
 
Java Server Faces 2
Java Server Faces 2Java Server Faces 2
Java Server Faces 2
 
1 Introduction
1 Introduction1 Introduction
1 Introduction
 
Java Server Faces (JSF)
Java Server Faces (JSF)Java Server Faces (JSF)
Java Server Faces (JSF)
 
J2ee
J2eeJ2ee
J2ee
 
Java Entreprise Edition
Java Entreprise EditionJava Entreprise Edition
Java Entreprise Edition
 
Développement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EEDéveloppement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EE
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications Java
 
Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)
 
Java EE 6 Solutions Linux 2010
Java EE 6 Solutions Linux 2010Java EE 6 Solutions Linux 2010
Java EE 6 Solutions Linux 2010
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 
Spring
SpringSpring
Spring
 
3 Jsf
3 Jsf3 Jsf
3 Jsf
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Jsf 110530152515-phpapp01
Jsf 110530152515-phpapp01Jsf 110530152515-phpapp01
Jsf 110530152515-phpapp01
 
J2 ee
J2 eeJ2 ee
J2 ee
 

En vedette

Java Message Services
Java Message ServicesJava Message Services
Java Message ServicesLorraine JUG
 
Rmi, corba and java beans
Rmi, corba and java beansRmi, corba and java beans
Rmi, corba and java beansRaghu nath
 
Distributed Objects: CORBA/Java RMI
Distributed Objects: CORBA/Java RMIDistributed Objects: CORBA/Java RMI
Distributed Objects: CORBA/Java RMIelliando dias
 
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)Roman Kharkovski
 
L’audace au féminin dans l'univers professionnel
L’audace au féminin dans l'univers professionnelL’audace au féminin dans l'univers professionnel
L’audace au féminin dans l'univers professionnelLinkedIn
 
Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiersHeithem Abbes
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Heithem Abbes
 
Votre visibilité sur internet : ce qui va changer
Votre visibilité sur internet : ce qui va changerVotre visibilité sur internet : ce qui va changer
Votre visibilité sur internet : ce qui va changerFranck Pelagatti
 
2010 - Principaux apports des nouveaux Règlements
2010 - Principaux apports des nouveaux Règlements2010 - Principaux apports des nouveaux Règlements
2010 - Principaux apports des nouveaux RèglementstrESS Network
 
Etudes maroc
Etudes marocEtudes maroc
Etudes marocjwadddah
 
My vision of Microsoft surface phone
My vision of Microsoft surface phoneMy vision of Microsoft surface phone
My vision of Microsoft surface phoneTrelohan Kevin
 

En vedette (20)

Transactions
TransactionsTransactions
Transactions
 
OUGF - Nouveautés OSGi Core 4.3
OUGF - Nouveautés OSGi Core  4.3OUGF - Nouveautés OSGi Core  4.3
OUGF - Nouveautés OSGi Core 4.3
 
Transaction design patterns
Transaction design patternsTransaction design patterns
Transaction design patterns
 
Java Message Services
Java Message ServicesJava Message Services
Java Message Services
 
Rmi, corba and java beans
Rmi, corba and java beansRmi, corba and java beans
Rmi, corba and java beans
 
Distributed Objects: CORBA/Java RMI
Distributed Objects: CORBA/Java RMIDistributed Objects: CORBA/Java RMI
Distributed Objects: CORBA/Java RMI
 
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)
 
L’audace au féminin dans l'univers professionnel
L’audace au féminin dans l'univers professionnelL’audace au féminin dans l'univers professionnel
L’audace au féminin dans l'univers professionnel
 
Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiers
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
 
Ejb3
Ejb3Ejb3
Ejb3
 
Corba
CorbaCorba
Corba
 
Promo
PromoPromo
Promo
 
Votre visibilité sur internet : ce qui va changer
Votre visibilité sur internet : ce qui va changerVotre visibilité sur internet : ce qui va changer
Votre visibilité sur internet : ce qui va changer
 
2010 - Principaux apports des nouveaux Règlements
2010 - Principaux apports des nouveaux Règlements2010 - Principaux apports des nouveaux Règlements
2010 - Principaux apports des nouveaux Règlements
 
Etudes maroc
Etudes marocEtudes maroc
Etudes maroc
 
Presentation
PresentationPresentation
Presentation
 
Encuesta
EncuestaEncuesta
Encuesta
 
My vision of Microsoft surface phone
My vision of Microsoft surface phoneMy vision of Microsoft surface phone
My vision of Microsoft surface phone
 
24 juillet 2011
24 juillet 201124 juillet 2011
24 juillet 2011
 

Similaire à Ejb3 2-session-beans fr

Voxxeddays lux 2018 apres java 8, java 9 et 10
Voxxeddays lux 2018 apres java 8, java 9 et 10Voxxeddays lux 2018 apres java 8, java 9 et 10
Voxxeddays lux 2018 apres java 8, java 9 et 10Jean-Michel Doudoux
 
cours-gratuit.com--id-1964.pdf
cours-gratuit.com--id-1964.pdfcours-gratuit.com--id-1964.pdf
cours-gratuit.com--id-1964.pdfRachida19
 
introductionaudevcomposantdistribuejavaee.pdf
introductionaudevcomposantdistribuejavaee.pdfintroductionaudevcomposantdistribuejavaee.pdf
introductionaudevcomposantdistribuejavaee.pdfHamdaneAbdelAzizHagg
 
devoxx 2022 - 10 ans de Devoxx FR et de Java.pdf
devoxx 2022 - 10 ans de Devoxx FR et de Java.pdfdevoxx 2022 - 10 ans de Devoxx FR et de Java.pdf
devoxx 2022 - 10 ans de Devoxx FR et de Java.pdfJean-Michel Doudoux
 
Play Framework
Play FrameworkPlay Framework
Play FrameworkArmaklan
 
Soutenance Stage Licence
Soutenance Stage LicenceSoutenance Stage Licence
Soutenance Stage LicenceMathias Kluba
 
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partageraliagadir
 
Objet Direct Formation Java pour devenir autonome
Objet Direct Formation Java pour devenir autonomeObjet Direct Formation Java pour devenir autonome
Objet Direct Formation Java pour devenir autonomeformationobjetdirect
 

Similaire à Ejb3 2-session-beans fr (20)

Ejb3 1-server-setup fr
Ejb3 1-server-setup frEjb3 1-server-setup fr
Ejb3 1-server-setup fr
 
Chap 02 poo en java
Chap 02 poo en javaChap 02 poo en java
Chap 02 poo en java
 
Voxxeddays lux 2018 apres java 8, java 9 et 10
Voxxeddays lux 2018 apres java 8, java 9 et 10Voxxeddays lux 2018 apres java 8, java 9 et 10
Voxxeddays lux 2018 apres java 8, java 9 et 10
 
Jpa(1)
Jpa(1)Jpa(1)
Jpa(1)
 
Java 11 to 17 : What's new !?
Java 11 to 17 : What's new !?Java 11 to 17 : What's new !?
Java 11 to 17 : What's new !?
 
Axis2 services fr
Axis2 services frAxis2 services fr
Axis2 services fr
 
JavaEEGibello.ppt
JavaEEGibello.pptJavaEEGibello.ppt
JavaEEGibello.ppt
 
cours-gratuit.com--id-1964.pdf
cours-gratuit.com--id-1964.pdfcours-gratuit.com--id-1964.pdf
cours-gratuit.com--id-1964.pdf
 
Apprendre J2EE
Apprendre J2EEApprendre J2EE
Apprendre J2EE
 
Nouveautés Java 9-10-11
Nouveautés Java 9-10-11Nouveautés Java 9-10-11
Nouveautés Java 9-10-11
 
introductionaudevcomposantdistribuejavaee.pdf
introductionaudevcomposantdistribuejavaee.pdfintroductionaudevcomposantdistribuejavaee.pdf
introductionaudevcomposantdistribuejavaee.pdf
 
devoxx 2022 - 10 ans de Devoxx FR et de Java.pdf
devoxx 2022 - 10 ans de Devoxx FR et de Java.pdfdevoxx 2022 - 10 ans de Devoxx FR et de Java.pdf
devoxx 2022 - 10 ans de Devoxx FR et de Java.pdf
 
Programmation Java
Programmation JavaProgrammation Java
Programmation Java
 
Play Framework
Play FrameworkPlay Framework
Play Framework
 
Java j2ee
Java j2eeJava j2ee
Java j2ee
 
Soutenance Stage Licence
Soutenance Stage LicenceSoutenance Stage Licence
Soutenance Stage Licence
 
Maven
MavenMaven
Maven
 
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partager
 
Introduction JavaEE
Introduction JavaEEIntroduction JavaEE
Introduction JavaEE
 
Objet Direct Formation Java pour devenir autonome
Objet Direct Formation Java pour devenir autonomeObjet Direct Formation Java pour devenir autonome
Objet Direct Formation Java pour devenir autonome
 

Plus de Ben Abdallah Helmi

SCWCD : Java server pages CHAP : 9
SCWCD : Java server pages  CHAP : 9SCWCD : Java server pages  CHAP : 9
SCWCD : Java server pages CHAP : 9Ben Abdallah Helmi
 
SCWCD : Servlet web applications : CHAP : 3
SCWCD : Servlet web applications : CHAP : 3SCWCD : Servlet web applications : CHAP : 3
SCWCD : Servlet web applications : CHAP : 3Ben Abdallah Helmi
 
SCWCD : The servlet model CHAP : 2
SCWCD : The servlet model CHAP : 2SCWCD : The servlet model CHAP : 2
SCWCD : The servlet model CHAP : 2Ben Abdallah Helmi
 
SCWCD : Thread safe servlets : CHAP : 8
SCWCD : Thread safe servlets : CHAP : 8SCWCD : Thread safe servlets : CHAP : 8
SCWCD : Thread safe servlets : CHAP : 8Ben Abdallah Helmi
 
SCWCD : Session management : CHAP : 6
SCWCD : Session management : CHAP : 6SCWCD : Session management : CHAP : 6
SCWCD : Session management : CHAP : 6Ben Abdallah Helmi
 
SCWCD : Handling exceptions : CHAP : 5
SCWCD : Handling exceptions : CHAP : 5SCWCD : Handling exceptions : CHAP : 5
SCWCD : Handling exceptions : CHAP : 5Ben Abdallah Helmi
 
SCWCD : The servlet container : CHAP : 4
SCWCD : The servlet container : CHAP : 4SCWCD : The servlet container : CHAP : 4
SCWCD : The servlet container : CHAP : 4Ben Abdallah Helmi
 
SCWCD : Servlet web applications : CHAP 3
SCWCD : Servlet web applications : CHAP 3SCWCD : Servlet web applications : CHAP 3
SCWCD : Servlet web applications : CHAP 3Ben Abdallah Helmi
 
SCWCD : The servlet model : CHAP : 2
SCWCD  : The servlet model : CHAP : 2SCWCD  : The servlet model : CHAP : 2
SCWCD : The servlet model : CHAP : 2Ben Abdallah Helmi
 
SCWCD : The web client model : CHAP : 1
SCWCD  : The web client model : CHAP : 1SCWCD  : The web client model : CHAP : 1
SCWCD : The web client model : CHAP : 1Ben Abdallah Helmi
 
SCWCD : Web tier design CHAP : 11
SCWCD : Web tier design CHAP : 11SCWCD : Web tier design CHAP : 11
SCWCD : Web tier design CHAP : 11Ben Abdallah Helmi
 

Plus de Ben Abdallah Helmi (16)

The Data Warehouse .pdf
The Data Warehouse .pdfThe Data Warehouse .pdf
The Data Warehouse .pdf
 
SCWCD : Java server pages CHAP : 9
SCWCD : Java server pages  CHAP : 9SCWCD : Java server pages  CHAP : 9
SCWCD : Java server pages CHAP : 9
 
SCWCD : Servlet web applications : CHAP : 3
SCWCD : Servlet web applications : CHAP : 3SCWCD : Servlet web applications : CHAP : 3
SCWCD : Servlet web applications : CHAP : 3
 
SCWCD : The servlet model CHAP : 2
SCWCD : The servlet model CHAP : 2SCWCD : The servlet model CHAP : 2
SCWCD : The servlet model CHAP : 2
 
SCWCD : The web client model
SCWCD : The web client modelSCWCD : The web client model
SCWCD : The web client model
 
SCWCD : Thread safe servlets : CHAP : 8
SCWCD : Thread safe servlets : CHAP : 8SCWCD : Thread safe servlets : CHAP : 8
SCWCD : Thread safe servlets : CHAP : 8
 
SCWCD : Secure web : CHAP : 7
SCWCD : Secure web : CHAP : 7SCWCD : Secure web : CHAP : 7
SCWCD : Secure web : CHAP : 7
 
SCWCD : Secure web
SCWCD : Secure webSCWCD : Secure web
SCWCD : Secure web
 
SCWCD : Session management : CHAP : 6
SCWCD : Session management : CHAP : 6SCWCD : Session management : CHAP : 6
SCWCD : Session management : CHAP : 6
 
SCWCD : Handling exceptions : CHAP : 5
SCWCD : Handling exceptions : CHAP : 5SCWCD : Handling exceptions : CHAP : 5
SCWCD : Handling exceptions : CHAP : 5
 
SCWCD : The servlet container : CHAP : 4
SCWCD : The servlet container : CHAP : 4SCWCD : The servlet container : CHAP : 4
SCWCD : The servlet container : CHAP : 4
 
SCWCD : Servlet web applications : CHAP 3
SCWCD : Servlet web applications : CHAP 3SCWCD : Servlet web applications : CHAP 3
SCWCD : Servlet web applications : CHAP 3
 
SCWCD : The servlet model : CHAP : 2
SCWCD  : The servlet model : CHAP : 2SCWCD  : The servlet model : CHAP : 2
SCWCD : The servlet model : CHAP : 2
 
SCWCD : The web client model : CHAP : 1
SCWCD  : The web client model : CHAP : 1SCWCD  : The web client model : CHAP : 1
SCWCD : The web client model : CHAP : 1
 
SCWCD : Web tier design CHAP : 11
SCWCD : Web tier design CHAP : 11SCWCD : Web tier design CHAP : 11
SCWCD : Web tier design CHAP : 11
 
Axis2 clients fr
Axis2 clients frAxis2 clients fr
Axis2 clients fr
 

Ejb3 2-session-beans fr

  • 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 L'accès local aux EJB 2
  • 4. Avantages d’EJB  Encapsuler la logique – La logique métier séparé de contrôle et de présentation  l'accès à distance – Applications multiples sur différents serveurs peuvent accéder EJB  la simplicité – Relativement facile à utiliser par rapport aux autres systèmes à distance d'objets  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. 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 d'approches.  Le printemps est plus facile et plus puissant pour l'accès local  Nécessite le serveur Java EE  Impossible d'exé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 l'argent  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. Utilisation de l'Industrie (Mots-clés dans Offres d'emploi dans le monde) 6
  • 7. Session Beans: Aperçu  session de Beans  Sur le serveur, vous faites l'interface (marqué avec @ Remote) et POJO qu'elle 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
  • 9. session Beans sans état: Idée  POJOs  Ordinaire des classes Java; pas d'interfaces ou des classes spéciales parent. Fournissent souvent une sorte de service telles que la cartographie des identifications client à des objets à la clientèle.  L'accès local ou à distance  Peut être consulté soit sur serveur d'application locale (même machine que soft qui utilise les beans) ou serveur d'application distant (machine différente du soft qui utilise les beans)  Ne pas maintenir l'état du client  Les variables d'instance 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. 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 à d'autres serveurs ou de projets sur le même serveur – Marque avec @ Local • Pour ne permettre l'accès de projets sur un même serveur (par défaut) • Créer une classe qui implémente l'interface – 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. EJB Project  faire des projets  fichier nouveau EJB Project  Choisissez un nom  JBoss ou Glassfish comme cible d'exécution  Vous pouvez ensuite déployer sur n'importe 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 l'ajouter à 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. Interface 12
  • 13. Classe qui implémente l'interface 13
  • 14. Les clients de session de Beans sans état 14
  • 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 d'autres infos 15
  • 16. Projet client distant  Fait nouveau projet Web dynamique  Choisir chanceux numéros-client que le nom  Choisir que JBoss 5 d'exécution cible  Peuvent être déployées pour Glassfish ou d'autres serveurs Java EE 5  jndi.properties  Fichier texte créé, appelé «jndi.properties" dans le dossier src  Doit donner URL distante. Souvent d'autres infos. Spécifiques du serveur!  Détails montré dans la diapositive à venir  Déploiement  N'a pas besoin de courir sur la même machine que le Projet d'EJB.  Autonome (bureau) les clients n'ont pas besoin d'être déployé sur n'importe quel serveur d'application, ils peuvent simplement avoir une "main" méthode.  Applications Web devrait être déployée sur un serveur Java EE 5 app 16
  • 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  J'utilise @ 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
  • 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 n'importe quel serveur.  jndi.properties correspond au serveur d'EJB projet  sortie 20
  • 21. Client Web à distance (Servlet) 21
  • 22. Client Web à distance(Servlet Suite) 22
  • 23. Client Web à distance(web.xml) 23
  • 24. Client Web à distance(Résultats de JBoss 5) 24
  • 25. Client Web à distance(Résultats Glassfish 2.1) 25
  • 26. Utilisation de @ EJB pour accéder à des beans locaux 26
  • 27. Idée  Utilisez @ EJB, avant variable d'instance  Bean sera automatiquement instanciée et assignée. Par exemple:  @ d'EJB privés Certains services mon service;  utile pour les  Un EJB qui utilise un autre d'EJB 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 d'instance, 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 d'EJB 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
  • 29. Exemple: classe EJB qui Implémente interface 29
  • 30. Exemple: client distant (Servlet) 30
  • 31. Exemple: client distant (Servlet Suite) 31
  • 32. Client à distant: jndi.properties 32
  • 33. Exemple: Client à distant(web.xml) 33
  • 37. Sessions Dynamiques de Beans: Idée  POJOs  Ordinaire des classes Java; aucune des interfaces spéciales ou d'un parent classes. Fournissent souvent une sorte de service qui stocke informations (temporairement) ainsi que de l'envoyer. Local ou accès à distant  Peut être consulté soit sur serveur d'application locale (même machine comme soft qui utilise les beans) ou serveur d'application à 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 d'informations, d'accé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. Sessions Dynamiques de Beans : Approche  Faire nouvel EJB projet  Fichier Nouveau projet EJB  Définir une interface  Marque avec @ Remote  Pour accéder à d'autres serveurs ou de projets sur le même serveur  Marque avec @ Local  Pour ne permettre l'accès de projets sur un même serveur (par défaut)  Créer une classe qui implémente l'interface  Marque avec @ Dynamique pour serveur JNDI cartographie  Marque avec @ (Stateful mappedName = "SomeJndiName")  Marquer une méthode avec @ Retirer  Lorsqu'elle est appelée, le serveur termine la session et l'instance de GC  Déployer application serveur  cliquez R-sur serveur, Ajouter / Supprimer des projets, de démarrer le serveur 38
  • 40. Exemple: Classe EJB qui implémente l'interface 40
  • 41. Exemple: Classe EJB qui implémente l'interface (suite) 41
  • 42. Exemple: client distant (Servlet) 42
  • 43. Exemple: client distant (Servlet Suite) 43
  • 44. Exemple: : client distant (JSP) 44
  • 45. Exemple: client distant (jndi.properties) 45
  • 46. Exemple: : client distant (web.xml) 46
  • 47. Exemple: client distant (formulaire de saisie) 47
  • 48. Résultats : client distant (JBoss 5) 48
  • 49. Résultat: client distant (Glassfish 2.1) 49
  • 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 (O'Reilly)  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. 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  L'accès local aux beans @EJB private InterfaceType var; 52