diff --git a/demoCoursAL/.classpath b/demoCoursAL/.classpath index fd14ee7..aedb26b 100644 --- a/demoCoursAL/.classpath +++ b/demoCoursAL/.classpath @@ -4,5 +4,7 @@ + + diff --git a/demoCoursAL/build.xml b/demoCoursAL/build.xml index ecb4913..9eb997c 100755 --- a/demoCoursAL/build.xml +++ b/demoCoursAL/build.xml @@ -23,6 +23,9 @@ + + + @@ -37,6 +40,7 @@ + @@ -72,17 +76,23 @@ - - - + + + + + + + - + + diff --git a/demoCoursAL/src/application.xml b/demoCoursAL/src/application.xml index 7ea0e58..1bbcecd 100755 --- a/demoCoursAL/src/application.xml +++ b/demoCoursAL/src/application.xml @@ -11,5 +11,11 @@ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns appliBanqueEntites.jar + + + appliBanque.war + appBanque + + diff --git a/demoCoursAL/src/client/Main.java b/demoCoursAL/src/client/Main.java index 5551909..92c35d7 100644 --- a/demoCoursAL/src/client/Main.java +++ b/demoCoursAL/src/client/Main.java @@ -14,9 +14,10 @@ public class Main { try { InitialContext ctx = new InitialContext(); System.out.println("Accès au service distant") ; - Object obj = ctx.lookup("ejb:appliBanque/appliBanqueSessions//ServiceBanqueBean!ejb.sessions.ServiceBanque"); + Object obj = ctx.lookup("ejb:appliBanque/appliBanqueSessions//ServiceBanqueBean"+ + "!ejb.sessions.ServiceBanqueRemote"); - ServiceBanque service = (ServiceBanque) obj ; + ServiceBanqueRemote service = (ServiceBanqueRemote) obj ; service.addCompte(1, "Olivier", 2000.0); service.addCompte(2, "Paul", 300.0) ; service.addAction("nintendo",46.5) ; diff --git a/demoCoursAL/src/ejb/sessions/ServiceBanque.java b/demoCoursAL/src/ejb/sessions/ServiceBanque.java index 4840c25..9df41e2 100644 --- a/demoCoursAL/src/ejb/sessions/ServiceBanque.java +++ b/demoCoursAL/src/ejb/sessions/ServiceBanque.java @@ -1,11 +1,12 @@ package ejb.sessions; import ejb.entites.LigneAction ; +import ejb.entites.Compte ; -@javax.ejb.Remote public interface ServiceBanque { public void addCompte(int numeroCompte, String nomTitulaire, double soldeDepart) throws CompteDejaExistantException ; + public Compte getCompte(int numeroCompte) throws CompteInconnuException ; public void addAction(String nomAction, double taux) throws ActionDejaExistanteException ; public void crediterCompte(int numeroCompte, double montant) diff --git a/demoCoursAL/src/ejb/sessions/ServiceBanqueBean.java b/demoCoursAL/src/ejb/sessions/ServiceBanqueBean.java index 3f0c21d..c4ec256 100644 --- a/demoCoursAL/src/ejb/sessions/ServiceBanqueBean.java +++ b/demoCoursAL/src/ejb/sessions/ServiceBanqueBean.java @@ -1,5 +1,6 @@ package ejb.sessions; +import java.util.Collection; import java.util.Set; import javax.persistence.EntityManager; @@ -10,7 +11,8 @@ import ejb.entites.Compte; import ejb.entites.LigneAction; @javax.ejb.Stateless -public class ServiceBanqueBean implements ServiceBanque { +public class ServiceBanqueBean + implements ServiceBanqueLocal, ServiceBanqueRemote { @PersistenceContext(unitName="appliBanque") protected EntityManager em ; @Override public void addCompte(int numeroCompte, String nomTitulaire, double soldeDepart) @@ -119,7 +121,7 @@ public class ServiceBanqueBean implements ServiceBanque { return c.getLignesactions() ; } - private Compte getCompte(int numeroCompte) throws CompteInconnuException { + @Override public Compte getCompte(int numeroCompte) throws CompteInconnuException { Compte c= (Compte) em.find(Compte.class, numeroCompte) ; if (c==null) throw new CompteInconnuException() ; return c; diff --git a/demoCoursAL/src/ejb/sessions/ServiceBanqueLocal.java b/demoCoursAL/src/ejb/sessions/ServiceBanqueLocal.java new file mode 100644 index 0000000..8440f7d --- /dev/null +++ b/demoCoursAL/src/ejb/sessions/ServiceBanqueLocal.java @@ -0,0 +1,6 @@ +package ejb.sessions; + + +@javax.ejb.Local public interface ServiceBanqueLocal extends ServiceBanque { + +} diff --git a/demoCoursAL/src/ejb/sessions/ServiceBanqueRemote.java b/demoCoursAL/src/ejb/sessions/ServiceBanqueRemote.java new file mode 100644 index 0000000..c03eedd --- /dev/null +++ b/demoCoursAL/src/ejb/sessions/ServiceBanqueRemote.java @@ -0,0 +1,6 @@ +package ejb.sessions; + +@javax.ejb.Remote +public interface ServiceBanqueRemote extends ServiceBanque { + +} diff --git a/demoCoursAL/src/web/controleurs/BadServlet.java b/demoCoursAL/src/web/controleurs/BadServlet.java new file mode 100644 index 0000000..68508e6 --- /dev/null +++ b/demoCoursAL/src/web/controleurs/BadServlet.java @@ -0,0 +1,46 @@ +package web.controleurs; + +import java.io.IOException; +import java.io.PrintWriter; + +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 ejb.entites.Compte; +import ejb.sessions.CompteInconnuException; +import ejb.sessions.ServiceBanqueLocal; + +@WebServlet(value={"badDisplayCompte"}) +public class BadServlet extends HttpServlet { + @EJB ServiceBanqueLocal service ; + + public BadServlet() {} + + public void doGet(HttpServletRequest req,HttpServletResponse res) + throws ServletException, IOException { + int numeroCompte= + Integer.parseInt(req.getParameter("numeroCompte")) ; + Compte c=null ; + try { + c=service.getCompte(numeroCompte) ; + } catch (CompteInconnuException e) { + } + res.setContentType("text/html"); + PrintWriter out = res.getWriter(); + out.println("demo servlet"+ + ""); + out.println(""); + if (c==null) + out.println("

Compte "+numeroCompte+" inconnu

") ; + else { + out.println("

Compte "+numeroCompte+"

") ; + out.println("
  • Titulaire:"+c.getTitulaire()+"
  • "); + out.println("
  • Solde:"+c.getSolde()+"
"); + } + out.println(""); + } +} diff --git a/demoCoursAL/src/web/controleurs/Controleur.java b/demoCoursAL/src/web/controleurs/Controleur.java new file mode 100644 index 0000000..0c34abf --- /dev/null +++ b/demoCoursAL/src/web/controleurs/Controleur.java @@ -0,0 +1,47 @@ +package web.controleurs; + +import java.io.IOException; + +import ejb.sessions.* ; +import ejb.entites.* ; + +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + + +@WebServlet(value={"rechCompte","afficherCompte"}) +public class Controleur extends HttpServlet { + private static final long serialVersionUID = 1L; + + @javax.ejb.EJB private ServiceBanqueLocal service ; + + public Controleur() {} + + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + String url = request.getRequestURL().toString(); + String maVue ="/rechCompte.html"; // vue par défaut + if (url.endsWith("/rechCompte")) { + maVue ="/rechCompte.html"; // rien d'autre à faire + } else if (url.endsWith("/afficherCompte")) { + maVue = "/afficherCompte.jsp"; + int numeroCompte=Integer.parseInt(request.getParameter("numeroCompte")) ; + Compte compte ; + try { + compte= service.getCompte(numeroCompte); + java.util.Collection l_la = service.getActionsAchetees(numeroCompte); + request.setAttribute("listeLA", l_la); + } catch (CompteInconnuException e) { + compte=null ; + } + request.setAttribute("compte",compte) ; + + } + RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(maVue); + dispatcher.forward(request,response); + } +} diff --git a/demoCoursAL/src/web/vues/afficherCompte.jsp b/demoCoursAL/src/web/vues/afficherCompte.jsp new file mode 100644 index 0000000..ff15867 --- /dev/null +++ b/demoCoursAL/src/web/vues/afficherCompte.jsp @@ -0,0 +1,32 @@ +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + + + Application banque + + + +

Application banque

+ +

Information compte:

+ +

Compte n° ${requestScope.compte.numero}

+ Titulaire : ${requestScope.compte.titulaire}
+ Solde ${requestScope.compte.solde} + +
    + +
  • ${la.nombre} action(s) ${la.action.nom} + au taux de ${la.action.taux} +
  • +
    +
+
+ + +

Compte Inconnu

+
+ + + \ No newline at end of file diff --git a/demoCoursAL/src/web/vues/badDisplayCompte2.jsp b/demoCoursAL/src/web/vues/badDisplayCompte2.jsp new file mode 100644 index 0000000..8c1090e --- /dev/null +++ b/demoCoursAL/src/web/vues/badDisplayCompte2.jsp @@ -0,0 +1,37 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> + + + + +demo JSP + + +<%@ page import="javax.ejb.*" %> +<%@ page import="javax.naming.*" %> +<%@ page import="ejb.sessions.ServiceBanqueLocal" %> +<%@ page import="ejb.entites.Compte" %> +<%@ page import="ejb.sessions.CompteInconnuException" %> +<%! + Compte c ; + int numeroCompte ; +%> + +<% + numeroCompte=Integer.parseInt(request.getParameter("numeroCompte")) ; + Compte c=null ; + InitialContext ic = new InitialContext(); + Object obj = ic.lookup("java:app/appliBanqueSessions/ServiceBanqueBean!ejb.sessions.ServiceBanqueLocal"); + ServiceBanqueLocal service= (ServiceBanqueLocal) obj ; + try { + c=service.getCompte(numeroCompte) ; +%> +

Compte <%= numeroCompte%>

+
  • Titulaire:<%= c.getTitulaire() %>
  • +
  • Solde:<%= c.getSolde() %>
  • +
+<% } catch (CompteInconnuException e) { %> +

Compte <%= numeroCompte %> inconnu

; +<% } // fin du try catch %> + + \ No newline at end of file diff --git a/demoCoursAL/src/web/vues/rechCompte.html b/demoCoursAL/src/web/vues/rechCompte.html new file mode 100644 index 0000000..508bec8 --- /dev/null +++ b/demoCoursAL/src/web/vues/rechCompte.html @@ -0,0 +1,18 @@ + + + + Application Banque + + + +

Application banque

+ +

Rechercher un compte

+
+ Numéro du compte : + + +
+ + -- libgit2 0.21.2