MATRICULE :………………………
Institut Supérieur d’Informatique EXAMEN
et de multimédia Durée : 60 mn NOM :………………………..
PRENOM : …………………..
Auditoire : P-MPIGP
Module : JEE
Note :
On vous charge de développer une application JEE pour gérer les ventes de produits. Pour cela, on vous offre le
diagramme de classes de l’application visée (voir Figure 1).
Partie I : Ecriture des beans (10 pts) [ cette partie fait l’objet du CC]
Question 1 : Combien de beans entity doit-on écrire pour implémenter le diagramme de classes de la Figure 1 ?
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
Question 2 : Quel est le nombre de tables qui va être généré dans la BD sachant qu’on va utiliser une seule table pour la
transformation de l’héritage ?
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
Question 3 : Supposons qu’on dispose du code Java des beans entity Produit, Passager et Détaillant, on vous
demande de compléter le code (là où il y a des points) du bean entity Client sachant que :
1/7
NE RIEN ECRIRE ICI
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
import java.util.Collection;
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
@Inheritance(strategy=………………………………………………………………………………………………………………………………………)
@DiscriminatorColumn(name="……………………………………………",discriminatorType=…………………………………………………………………,length=………)
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
2/7
public void setPrenom(String prenom) { this.prenom = prenom; }
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
Question 4 : Le code ci-dessous donné, présente un extrait de l’interface du bean session qu’on va utiliser afin de
simuler les traitements que nous pouvons effectuer pour la gestion des séminaires. Compléter le code (là où il y a des
points) de la classe du bean GestionProduitBean qui implémente cette interface sachant que :
- La classe du bean se trouve dans le package bean.session.
- Le nom du bean GestionProduitBean est PRODUIT.
- La gestion de la persistance au niveau du bean est réalisée moyennant un EntityManager.
- Le nom de l’unité de persistance est UP_PRODUIT
- On ne va pas gérer les exceptions lors de la recherche d’un client ou d’un produit.
package bean.session;
import java.util.List;
import javax.ejb.Remote;
import bean.entity.*;
@Remote
public interface GestionProduit {
public void ajouterProduit(Produit p);/*ajouter un produit dans la BD*/
public void ajouterClient(Client c);/*ajouter un client dans la BD*/
public void acheterProduit(int idc, int idp);/*réaliser l’achat d’un produit par un client, la
quantité achetée est toujours égale à 1*/
public void supprimerProduit(int idp);/*supprimer un produit*/
public double calculerChiffreAffaireProduit(int idp);/*calculer le chiffre d’affaires réalisé par
un produit*/
public List<Produit> consulterProduits();/*consulter la liste des produits*/
public List<Client> consulterClientsParProduit(int idp);/* consulter la liste des clients par
produits*/
}
3/7
//Code de la classe du bean ……………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………}
………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………
{…………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………} ……………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………} ……………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… idp){
…………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………..} ……………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………..}
4/7
public List<Client> ……………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………}
Question 5 : Pour réussir le déploiement de tous les beans (session et entity) dans le serveur d’application on a besoin
d’un fichier xml qu’on doit ajouter dans le répertoire META-INF. Quel est le nom de ce fichier ?
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
import java.util.Properties;
import javax.naming.*;
………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
prop.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
5/7
………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
}}
Remarques :
- Le nom de la servlet est "servletProduit" ;L’urlPattern de la servlet est "/servletProduit"
- Pas de code HTML à écrire, seulement du code Java
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.ejb.EJB;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
……………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………
6/7
@WebServlet(name="………………………………………………….. ",urlPatterns={"……………………………………………………….. "})
……………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………
ServletException, IOException {
……………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………
out.println("<html>");
out.println("<body>");
out.println("<tr>");
out.println("<th>Identifiant</th><th>Libellé</th><th>Quantité en stock</th><th>Chiffres
d’affaires</th>");
out.println("</tr>");
……………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………
{out.println("<tr align=center>");
out.println("<td>"+ …………………………………………………………………………………………………+"</td>");
out.println("<td>"+ …………………………………………………………………………………………………+"</td>");
out.println("<td>"+…………………………………………………………………………………………………+"</td>");
out.println("<td>"+ …………………………………………………………………………………………………………………………………………………………………………………+"</td>");
out.println("</tr>");
……………………………………………………………………………………………………………………………………………………………………………………………………
out.println("<tr align=right>");
out.println("</tr>");
out.println("</table>" );
out.println("</body>");
out.println("</html>");
} }
7/7