La leçon 1.4 vous montre comment créer un projet Web pour tester votre application.
Avant de commencer, vous devez terminer la leçon 1.3.
Dans ce tutoriel, vous allez :
- créer un projet Web (EJBCounterWebEE6) ;
- créer un projet de fragment Web (EJBCounterWebFragEE6) ;
- créer une page Web (EJBCount.jsp) ;
- créer un servlet (EJBCount.java) ;
- exécuter le servlet pour tester votre application ;
- Extrayez le contenu de EJB3CounterDB.zip
- Téléchargez la base de données requise, qui fournit la persistance
pour le projet EJB 3.1 Counter.
- Après le téléchargement de EJB3CounterDB, développez et cliquez deux fois sur EJB3CounterDB.zip. Un utilitaire d'extraction de fichiers s'ouvre dans une fenêtre externe.
: Extrayez la base de données dans le dossier /derby/databases du dossier d'installation de WebSphere Application
Server :
: Extrayez la base de données dans le dossier /derby/databases du dossier d'installation de WebSphere Application
Server.- Donnez à l'utilisateur non-root l'accès au répertoire databases. (Le moyen le plus simple est de donner cet accès à tout le monde : chmod ugo+x databases.
- Donnez à l'utilisateur non-root l'accès en écriture à la base de données décompressée
(Par exemple, vous pouvez effectuer l'extraction comme utilisateur non-root, à condition d'avoir accès au répertoire databases).
Important : Selon le type de serveur WebSphere Application Server, l'emplacement par défaut de vos bases de données
/derby/databases peut varier. Pour des informations sur les répertoires d'installation par défaut, voir
Création d'un serveur WebSphere Application Server.
- Dans la perspective Java™ EE,
cliquez avec le bouton droit de la souris sur votre projet d'application d'entreprise, puis sélectionnez pour l'assistant de projet Web.
- Sur la page Projet Web :
- Dans la zone Nom du projet, entrez EJBCounterWebEE6.
- Dans la zone Modèles de projet,
sélectionnez Simple.
- Dans la zone Modèle de programmation,
sélectionnez Java EE.
- Sur la page Déploiement, dans la liste des options de configuration
disponibles, cliquez sur Déploiement pour ouvrir la page Configuration
du déploiement.
- Dans la liste Environnement d'exécution cible, sélectionnez WebSphere
Application Developer v8.
- Décochez Ajouter le support pour les liaisons et extensions WebSphere.
- Dans la zone Version du module Web, sélectionnez 3.0.
- Dans la zone Appartenance EAR, cliquez sur
Ajouter le projet à un fichier EAR.
- Assurez-vous que la zone Nom du projet EAR affiche EJBCounterSampleEE6EAR.
- Acceptez les autres valeurs par défaut et cliquez sur Terminer.
Si vous recevez l'invite Ouvrir la Perspective associée ?, cliquez sur Non.
- Cliquez avec le bouton droit sur le projet EJBCounterWebEE6 et sélectionnez
.
- Sur la page Nouvelle page Web, dans la zone Nom de fichier, tapez EJBCount.jsp, vérifiez que le modèle sélectionné est JSP et cliquez sur
Terminer.
- Dans la vue Source de l'éditeur de page Web, remplacez tout le code
existant par le code ci-après et appuyez sur les touches CTRL+S pour
sauvegarder :
<%@page session="false"%>
<HTML>
<HEAD>
<TITLE>IBM WebSphere EJB 3.1 and JPA 2.0 Counter Sample</TITLE>
<BODY bgcolor="cornsilk">
<H1>EJB 3.1 and JPA 2.0 Counter Sample</H1>
<P>
<B>
This application communicates with the WebSphere Application Server using http requests to increment a singleton EJB
3.1 counter bean which is using a JPA 2.0 entity (ie. keeps a persistent counter in a Derby database table).
</B>
<FORM METHOD=POST ACTION="counter">
<BR/>
<%
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires",0);
String msg = (String) request.getAttribute("msg");
if (msg == null) msg = "";
%>
<B>Click on the Increment button to increment the count</B>
<BR/><BR/>
<INPUT TYPE=SUBMIT VALUE="Increment">
</FORM>
<H3><%=msg%></H3>
</BODY>
</HTML>
- Cliquez avec le bouton droit sur le projet EJBCounterWebEE6 et sélectionnez
.
- Sur la page Nouveau Servlet, dans la zone Package Java, entrez com.ibm.example.websphere.ejb3sample.counter.
- Dans la zone Nom de classe, entrez EJBCount et cliquez sur Suivant :
- Dans la zone Nom, entrez EJB Count Servlet. Dans la zone Mappages d'URL, éditez le mappage existant et mettez en évidence /EJB Count Servlet puis cliquez sur Editer.
Remplacez le modèle par /counter et cliquez sur Terminer :
- Ajouter des entrées d'assemblage de déploiement :
- Cliquez avec le bouton droit sur le projet EJBCounterWebEE6 et sélectionnez Propriétés.
- Sélectionnez Assemblage de déploiement, sélectionnez Entrées de manifeste et cliquez sur Ajouter.
- Sélectionnez EJBCounterSampleEE6.jar, cliquez sur Terminer puis cliquez sur OK.
- Développez ,
et double-cliquez sur le fichier EBJCount.java.
Celui-ci s'ouvre dans l'éditeur Java.
- Remplacez le code existant par le code ci-après et appuyez sur les touches CTRL+S pour sauvegarder :
package com.ibm.example.websphere.ejb3sample.counter;
// This program may be used, executed, copied, modified and distributed
// without royalty for the purpose of developing, using, marketing, or distributing.
import java.io.IOException;
import javax.ejb.EJB;
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;
/**
* This servlet demonstrates an EJB3 counter bean with JPA.
*/
@WebServlet(
description="This servlet demonstrates the various ways to increment EJB 3.1 counter beans.",
name="EJB Count Servlet",
displayName="EJB Count Servlet",
urlPatterns="/counter"
)
public class EJBCount extends HttpServlet {
private static final long serialVersionUID = -5983708570653958619L;
// Use injection to get the ejb
@EJB private LocalCounter singletonCounter;
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
String msg = null;
int ejbCount = 0;
try {
ejbCount = singletonCounter.getTheValue();
}
catch (RuntimeException e) {
msg = "Error - getTheValue() method on EJB failed!";
e.printStackTrace();
}
msg = "EJB Count value for Singleton Bean with JPA: " + ejbCount;
// Set attributes and dispatch the JSP.
req.setAttribute("msg", msg);
RequestDispatcher rd = getServletContext().getRequestDispatcher("/EJBCount.jsp");
rd.forward(req, res);
}
public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
String msg = null;
int ejbCount = 0;
try {
ejbCount = singletonCounter.increment();
}
catch (RuntimeException e) {
msg = "Error - increment() method on EJB failed!";
e.printStackTrace();
}
msg = "EJB Count value for Singleton Bean with JPA: " + ejbCount;
// Set attibutes and dispatch the JSP.
req.setAttribute("msg", msg);
RequestDispatcher rd = getServletContext().getRequestDispatcher("/EJBCount.jsp");
rd.forward(req, res);
}
}
Vous êtes maintenant prêt à passer à l'exercice 1.5, Créer un projet de fragment Web pour tester votre application.