Vous êtes sur la page 1sur 3

ISGA

Rabat A.U : 2010/2021

Entreprise Java Beans


Série N°1

Atelier 1 : Création d’un EJB session de type Stateless


Préparation de l’environnement
1. Installez JDK1.8 si ce n’est pas encore fait. Au cas où vous avez un autre JDK autre que le 1.8,
vous pouvez modifier sa référence au niveau de l’IDE en choisissant dans le menu l’option :
Windows -> Preferences -> JAVA -> Installed JREs, changez aussi le compiler compliance
level pour le mettre à 1.8 (Windows -> Preferences ->JAVA -> compiler)
2. Décompressez le fichier wildfly-8.1.0.Final.zip sur une des unités (ex. D: )
3. Ajoutez wildfly au niveau d’Eclipse comme étant un serveur d’application, dans le cas de
l’indisponibilité du plug-in JBoss, vous pouvez l’ajouter :
i. En sélectionnant au niveau d’Eclipse « Help/Eclipse Marketspace »
ii. Dans le champ « Find » de l’onglet Search mettez le mot clé : « jboss tools »
iii. Et vous installez le plug-in permettant d’administrer jboss à partir d’Eclipse

2
4

Création du projet EJB


4. Créez un projet de type EJBProjet et nommez le « TP1 », n’oubliez de choisir le serveur
« wildfly » au niveau de l’option « Target Run Time »»
5. Au niveau de « ejbModule », créez un package et nommez le « myPack »
6. Créez une interface du service, définissant les méthodes qui seront disponibles dans l’EJB et qui
seront utilisées par le code client, nommez la « Calculatrice ». Au niveau du code de l’interface :
i. préfixez l’interface par l’annotation @Remote (pour spécifier au conteneur d’EJB qu’il
devra créer un lien de type Remote avec cette interface pour l’EJB)
ii. ajoutez à l’interface la méthode add faisant la somme de deux entiers.
On obtient le code suivant :
package myPack; 
import javax.ejb.Remote; 
@Remote 
public interface Calculatrice { 
  public int add(int a, int b); 
}

7. Créez une classe simple et nommez la « Calculette » :


i. Préfixez le nom de la classe par l’annotation @Stateless, pour indiquer que ce composant
EJB sera sans état
ii. Etendez la classe par l’interface Calculatrice

D.BOUZIDI Entreprise Java Beans 1|3


iii. Au niveau du corps de la classe Calculette, ajoutez l’implémentation du code de la méthode
add définie par l’interface
package myPack; 
import javax.ejb.Stateless; 
@Stateless 
public class Calculatte implements Calculatrice { 
  @Override 
  public int add(int a, int b) { 
    return a+b; 
  } 

8. Génération du .jar et déploiement du projet : Déployez le projet au niveau du conteneur wildfly,


ce dernier génère automatiquement le .jar du projet et il le stocke dans le répertoire de
déploiement défini par défaut à savoir « wildfly-8.1.0.Final\standalone\deployments »

Atelier 2 : Appel de l’EJB via un client lourd


1. Sous Eclipse, créez un nouveau projet de type java Project nommé le TP1Clt
2. Dans la boite de dialogue « Build path », au niveau de l'onglet
a. « Projects » liez le projet contenant les EJB
b. « Libraries » ajoutez comme external jar le fichier « jboss-client.jar » se trouvant dans
le répertoire « wildfly-8.1.0.Final\bin\client\ »
3. Au niveau de répertoire src du projet, créez un fichier nommé jboss-ejb-client.properties
contenant les informations qui permettront à l'application cliente de se connecter au service de
nommage (JNDI) du serveur JBoss. Le contenu de ce fichier est le suivant :
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false 
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
remote.connections=default 
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
remote.connection.default.host=localhost 
java.naming.provider.url=localhost:1099
remote.connection.default.port = 8080 
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false

4. Créez un nouveau package nommez le pack


5. Créez la classe cliente qui va invoquer notre composant EJB Calculette, et nommez la
FaireCalcul
6. Ajoutez la méthode main, son code doit :
i. récupérer grâce à JNDI un contexte d’appel du serveur d’EJB
ii. et d’instancier à l’aide de ce contexte le stub stubCalcul en respectant la syntaxe de
localisation d’EJB : ejb:[appname]/modulename[/distinctname][/beanname!interface]
context.lookup("ejb:/TP1/Calculette!myPack.Calculatrice");
iii. Afficher le calcul faisant la somme de 25 et 35
On obtient le code ci-dessous :
public class FaireCalcul { 
public static void main(String[] args) { 
 final Hashtable<String, String> jndiProperties=new Hashtable<String,String>(); 
 jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming"); 
 try { 
 final Context context= new InitialContext(jndiProperties); 
 Calculatrice stubCalcul=(Calculatrice)context.lookup("ejb:/TP1/Calculatte!myPack.Calculatrice"); 
 System.out.println(stub.add(25, 35)); 
} catch (NamingException e) { 
  e.printStackTrace(); 
  } 

}

D.BOUZIDI Entreprise Java Beans 2|3


Atelier 3 : Appel de l’EJB via un client léger
1. Sous Eclipse, créez un nouveau projet de type Dynamic Web Project, nommez le
« TP1CltWeb ». Pour le « target RunTime », choisissez le serveur « wildfly 8.x Runtime » que
vous avez installé
2. Liez le projet web avec celui du EJB Dans la boite de dialogue « Build path », au niveau de
l'onglet « Projects » cochez le projet EJB que vous avez créé
3. Copiez le fichier « jboss-client.jar » se trouvant dans le répertoire « wildfly-
8.1.0.Final\bin\client\ » pour le mettre dans le répertoire WebContent\WEB-INF\lib
4. Créez un package et nommez le « pack » et une servlet et nommez la FaireCalcul
5. Dans la partie doGet() de la servlet copiez le code que vous avez déjà dans la méthode main

final Hashtable<String, String> jndiProperties=new Hashtable<String,String>(); 
 jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming"); 
 try { 
 final Context context= new InitialContext(jndiProperties); 
 Calculatrice stubCalcul=(Calculatrice)context.lookup("ejb:/TP1/Calculatte!myPack.Calculatrice"); 
 System.out.println(stub.add(25, 35)); 
} catch (NamingException e) { 
  e.printStackTrace(); 
  } 

6. Remodelez ce code en changeant :


i. l’url de la méthode lookup le nom du projet EAR que nous allons créer par la suite
context.lookup("ejb:monProjetEAR/TP1/Calculette!myPack.Calculatrice"); 
ii. au lieu de l’affichage du résultat dans la console faites un affichage sur la page web, pour
cela remplacez l’instruction System.out.println (……….) par :
response.getWriter().append("la somme des deux valeurs est :"+ stubCalcul.add(35, 65)); 

7. Créez maintenant un projet de type « Entreprise Application Projet » que vous allez trouver dans
le « Java EE » et nommez le monProjetEAR.
i. Pour le « target RunTime » choisissez le serveur « wildfly 8.x Runtime » que vous avez
installé
ii. Dans la deuxième boite de dialogue de la création, cochez les deux projets créés « TP1 »
et « TP1CltWeb »
iii. Déployez le projet EAR créé
iv. Testez le bon fonctionnement de l’appel de l’EJB session en testant l’url
« http://localhost:8080/TP1CltWeb/FaireCalcul »

D.BOUZIDI Entreprise Java Beans 3|3

Vous aimerez peut-être aussi