Vous êtes sur la page 1sur 19

Université Sultan Moulay Slimane

Faculté des Sciences et Techniques – Béni Mellal

Département Informatique
Module : Technologie JavaEE

Travaux Pratiques : série 5


 Effectuée par :
CHAOUCHAOU OMAIMA (Groupe 1)
NOUHAILA AL ASSEAD
SERIE 5 PARTIE 1 :

Instalation du plugin Jboss Tools pour Eclipse :

Avant de créer un projet EJB, il est nécessaire de créer d’installer tous outils
fournis par JBossTools, selon la marketplace d’Eclipse Eclipse Marketplace. On
cherche la solution Jboss Tools pour la télécharger et l’installer.

Puis on installe justement les plugins qu’on a besoin. Dans ce cas, on est besoin uniquement
d’installer du plugin JBoss As, WildFly & EAP Server Tools, puis on confirme l’installation de
la solution. Une fois l’installation soit terminée, on accepte tous les licences demandées.
Création d’un projet EJB :
Sur la liste des projets qu’on peut créer, on choisir de créer un EJB Project (File > New > EJB
Project) nommé EJBProj. Premièrement, on doit configurer l’IDE Eclipse avec le serveur
WildFly version 27 qu’on a situé sur le chemin C:/OutilsJEE dans un dossier nommé "wildfly-
v27".
Selon le Button « New Runtime » on choisie le RunTime Environment « WildFly 27 Runtime » du
dossier JBoss Community.

Puis on sélectionne le chemin du serveur sur le disque C, avec la sélection du JRE installé. Pour arriver
finalement de créer le projet avec succès.

La création de projet sous le nom tpp5 :

Une fois le projet est créé, on essaye d’ajouter l’API de persistance JPA selon les propriétés du projet.
On choisit l’onglet Project Facets, puis on chose la Facet JPA. Eclipse a automatiquement créé le
fichier de configuration persistance.xml
Création d’EJB -Entity :
Dans le module ejbModule, on ajoute une classe jpaEntity (New > JPA Entity) nommée Compte
responsable gérer un compte bancaire.
Cette entité contient 3 propriétés :

- Code : Représente le compte du compte sous forme des chiffres (Long integer)
- Solde : Le solde du compte (double)
- DateCréation : La date de création de compte (date)
- On ajoute l’annotation suivante pour mentionner que l’attribut code soit auto-incrémenté :
- @GeneratedValue (strategy=GenerationType.IDENTITY)
Tester le framework générale la table compte sur la base de
données :
Pour être capable de créer et générer les tables par le Framework, on doit ouvrir le fichier de
configuration persistence.xml. Sur l’onglet Schéma Generation, on choisit comme option pour
Database action et Scripts generation le choix Drop and Create.
Puis on choisit l’onglet Source pour changer le code source du fichier, on ajoute à la balise d’unité de
persistance <persistance-unit>, l’attribut transaction-type=”jta”.
Et on ajoute le code suivant aussi à l’unité de persistance :

<jta-data-source>java:/dsBanque</jta-data-source

Après la configuration du serveur, on le démarre sans déployer le projet. Puis on consulte la console
d’administration JBoss selon le lien localhost:8080. On remarque le serveur nos demande de saisir le
nom d’utilisateur et le mot de passe de l’utilisateur pour accès au site.
Création d’un utilisateur pour administrateur du serveur :
On ouvre la ligne de commandes en mode administrateur, puis on change le répertoire en répertoire
du serveur WildFly sur le disque C, on exécute le fichier add-user.bat pour créer un nouvel
administrateur du serveur en utilisant le mot "admin" comme un nom d’utilisateur et un mot de
passe.
Pour effectuer la connexion entre le Framework et la base de données, on se connecte à
la console d’administration en utilisant le login et le mot de passe configurée (admin).
Après la configuration de d’administrateur du serveur, on doit maintenant créer la base
de données en utilisant le système phpMyAdmin, la base de données est nommée «
DBBANQUE ».
Puis on spécifie les informations de connexion à la base de données. On écrit le nom de la
base de données au niveau URL de connexion " jdbc:mysql://localhost:3306/
BD_BANQUE", le nom d’utilisateur "root" et son password

On teste la connexion pour arriver au succès de la connexion entre le serveur et la base de


données.
Après le déploiement du driver et l’ajout du datasource pour effectuer la connexion entre le
Framework EJB et la base de données, on doit maintenant déployer le projet et redémarrer
le serveur. Le Framework crée la table des comptes sur la base de données.

SERIE 5 PARTIE 2 :
Instalation du plugin Jbosstools :

Création projet EJB:

 LES INTERFACES :

package session;
import java.util.List;
import javax.ejb.Remote; import entities.Compte;

@Remote
public interface IBanqueRemote {
public void addCompte(Compte c);
public List<Compte> consulterComptes();
public Compte consulterCompte(Long code);
public void verser(Long code,double montant);
public void retirer(Long code,double montant);
}

package session;

import java.util.List;

import javax.ejb.Local;

import entities.Compte;

@Local
public interface IBanqueLocal {
public void addCompte(Compte c);
public List<Compte> consulterComptes();
public Compte consulterCompte(Long code);
public void verser(Long code,double montant);
public void retirer(Long code,double montant);
}
 CLASSE CONTIENT METHODE MAIN :
package session;
import java.util.ArrayList;
import java.util.Date;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;

import javax.annotation.PostConstruct;
import javax.ejb.Singleton;

import entities.Compte;

@Singleton(name="BP2") public class BanqueEjbImpl implements IBanqueLocal ,


IBanqueRemote {
private Map<Long, Compte> comptes = new Hashtable<Long, Compte>();
@Override
public void addCompte(Compte c){
comptes.put(c.getCode(), c);
}
@Override
public List<Compte> consulterComptes(){
List<Compte> cptes = new ArrayList<Compte>(comptes.values());
return cptes;
}
@Override
public Compte consulterCompte(Long code) {
Compte cp = comptes.get(code);
if(cp == null) throw new RuntimeException("Compte introuvable");
return cp;
}
@Override
public void verser(Long code, double montant) {
Compte cp=comptes.get(code); cp.setSolde(cp.getSolde()+ montant);
}
@Override
public void retirer(Long code, double montant) {
Compte cp=comptes.get(code);
if(cp.getSolde() < montant) throw new RuntimeException("Solde
insuffisant");
cp.setSolde(cp.getSolde()-montant);
}
@PostConstruct
public void initialisation(){
addCompte(new Compte(1L, 7000, new Date()));
addCompte(new Compte(2L, 4000, new Date()));
addCompte(new Compte(3L, 2000, new Date()));
}
}
 SERVLET POUR JSP :

package web;

import java.io.I0Exception;

import javax.ejb.EJB;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;
import metier.entities.Compte;

import metier.session. IBanqueLocal;

@WebServlet(name="cs",urlPatterns={"/controleur"})

public class ControleurServlet extends HttpServlet {

@E3B

private IBanqueLocal metier;

@Override

protected void doGet(HttpServletRequest request, HttpServletResponse

response)

throws ServletException, IOException {

try {String action=request.getParameter("action");

if(action!=nu11){

if(action.equals("Consulter")){

Long code=Long.parseLong(request.getParameter("code"));

request.setAttribute("code", code);

Compte cp=metier.consulterCompte(code);

request.setAttribute("compte", cp);

else if(action.equals("Tous Les comptes")){

request.setAttribute("comptes", metier.consulterComptes());

else if((action.equals("Verser"))||(action.equals("Retirer"))){

double montant=Double .parseDouble(request.getParameter("montant"));

Long code=Long.parseLong(request.getParameter

("code"));

request.setAttribute("montant", montant);

request.setAttribute("code", code);

if(action.equals("Verser")){

metier.verser(code, montant);

}
else{

metier.retirer(code, montant);

request.setAttribute("compte", metier.consulterCompte(code));

catch (Exception e) {request.setAttribute("exception",

e.getMessage());}

request .getRequestDispatcher("Banque.jsp").forward(request,

response);

 LES PAGES JSP :


<%@ page languages

pageEncoding="IS0-8859-1"%>

"java" contentType="text/html; charset=ISO-8859-1"

<¥@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="e" %>

<!DOCTYPE html>

<htm1> <head>

<meta charset="IS0-8859-1">

<title>Insert title here</title>

</head>

<body>

<div id="formRecherche">

<form action="controleur" method="get">

<table>

<tr>

<td> Code :</td>

<td><input type="number" name="code" value="${code}"


required="required"></td>

<td>${errCode}</td>

<td><input type="submit" name="action" value="Consulter"></td>

<td><input type="submit" name="action" value="Tous Les comptes"></td>

</tr>

</table>

</form>

</div>

<c:if test="g{(compte!=null)|[(mtMsgErr!=null)}">

<div id="compte">

<table>

<tr> <td>Code:</td><td>${compte.code}</td> </tr>

<tr><td>Solde:</td><td>${compte.solde}</td> </tr>

<tr><td>Date Création:</td><td>${compte.dateCreation}</td></tr

</table>

</div>

<div id="formOperations">

<form action="controleur" method="get">

<table><tr>

<td><input type="hidden" name="code" value="${code}"></td>

[09:20, 01/03/2024] Nouha: <td><input type="number" name="montant" required="required"

value="g{montant}"></td>

<td>${mtMsgERr}</td>

<td><input type="submit" name="action" value="Verser"></td>

<td><input type="submit" name="action" value="Retirer"></td>

</tr></table>
</form></div>

</c:if>

<c:if test="${comptes!=null}">

<div id="LlisteComptes">

<table border="1" width="80%">

<tr> <th>CODE</th><th>SOLDE</th><th>DATE CREATION</th></tr>

<c:forEach items="g{comptes}" var="cp">

<tr>

<td>${cp.code}</td> <td>${cp.solde}</td> <td>${cp.dateCreation}</td>

</tr>

</c:forEach>

</table>

</div>

</c:if>

<div id="errors">

${exception} ©

</div>

</body>

</html>

Vous aimerez peut-être aussi