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 cette leçon, vous :
- Créez un projet Web, EJBCounterWeb
- Créez une page Web, EJBCount.jsp
- Créez un servlet, EJBCount.java
- Exécutez le servlet pour tester votre application
- Extrayez EJBCounterDB
- Téléchargez la base de données requise, qui fournit la persistance
pour le projet EJB 3.1 Counter.
- Développez et double-cliquez sur EJBCounterDB.zip.
:
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 en tant qu'utilisateur non-root, à condition d'avoir accès au répertoire des bases de données).
Important : Selon le type de serveur WebSphere Application Server, l'emplacement par
défaut de votre répertoire
/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.
- Dans la page Projet Web, dans la zone Nom du projet, entrez EJBCounterWeb.
- Dans la zone Modèles de projet,
sélectionnez Simple.
- Dans la zone Modèle de programmation,
sélectionnez Java EE. Cliquez sur Suivant.
- Dans la page Déploiement, depuis 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 une version prise en charge de WebSphere
Application Developer dans la zone déroulante.
- Décochez l'option Ajouter le support pour les liaisons et extensions WebSphere si elle est cochée.
- Dans la zone Version de module Web, sélectionnez 3.0
- Dans la zone Appartenance EAR, cliquez sur
Ajouter le projet à un fichier EAR.
- Dans la zone Nom du projet EAR, assurez-vous que EJBCounterWebEAR apparaît.
- 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 de la souris sur EJBCounterWeb et sélectionnez .
- Sur la nouvelle page Web, dans la zone Nom de fichier, entrez EJBCount.jsp.
Vérifiez que JSP est le modèle sélectionné 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 EJB3 and JPA1 Counter Sample</TITLE>
<BODY bgcolor="cornsilk">
<H1>EJB 3.0 and JPA 1.0 Counter Sample</H1>
<P>
<B>
This application communicates with the WebSphere Application Server using http requests to increment a stateless EJB 3.0 counter bean which is using a JPA 1.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 de la souris sur EJBCounterWeb 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, tapez 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 :
- Cliquez avec le bouton droit sur le projet EJBCounterWeb et sélectionnez Propriétés.
- Sélectionnez Assemblage de déploiement, sélectionnez Entrées de manifeste, puis cliquez sur Ajouter
- Sélectionnez EJBCounterSample.jar, puis
cliquez sur Terminer, puis sur OK Si le fichier EJBCounterSample.jar n'apparaît pas,
cliquez sur le lien Configurer les entrées de manifeste disponibles et sélectionnez
EJBCounterSample dans la colonne Source de la fenêtre
d'assemblage du module EAR, et cliquez sur Appliquer,
puis sur OK. Enfin, dans la fenêtre Ajouter les entrées de manifeste, cliquez sur Terminer,
et dans la fenêtre Propriétés, 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.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* This servlet demonstrates an EJB3 counter bean with JPA.
*/
public class EJBCount extends HttpServlet {
private static final long serialVersionUID = -5983708570653958619L;
// Use injection to get the ejb
@EJB private LocalCounter statelessCounter;
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
String msg = null;
int ejbCount = 0;
try {
ejbCount = statelessCounter.getTheValue();
}
catch (RuntimeException e) {
msg = "Error - getTheValue() method on EJB failed!";
e.printStackTrace();
}
msg = "EJB Count value for Stateless 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 = statelessCounter.increment();
}
catch (RuntimeException e) {
msg = "Error - increment() method on EJB failed!";
e.printStackTrace();
}
msg = "EJB Count value for Stateless Bean with JPA: " + ejbCount;
// Set attibutes and dispatch the JSP.
req.setAttribute("msg", msg);
RequestDispatcher rd = getServletContext().getRequestDispatcher("/EJBCount.jsp");
rd.forward(req, res);
}
}
- Dans la vue Explorateur d'entreprise, développez , et cliquez avec le bouton droit sur le fichier EJBCount.java, puis sélectionnez et cliquez sur Terminer.
- L'application compteur s'ouvre dans un navigateur Web :
Vous avez terminé le tutoriel Compteur EJB 3.0.