La lección 1.4 le guiará en la creación de un proyecto web para probar la aplicación.
Antes de empezar, debe haber completado la lección 1.3.
En esta lección realizará las siguientes tareas:
- Crear un proyecto web, EJBCounterWebEE6
- Crear un proyecto de fragmento web, EJBCounterWebFragEE6
- Crear una página web, EJBCount.jsp
- Crear el servlet EJBCount.java
- Ejecutar el servlet para probar la aplicación
- Descomprima el archivo EJB3CounterDB.zip.
- Descargue la base de datos necesaria, que proporciona persistencia para el proyecto de contador EJB 3.1.
- Después de descargar EJB3CounterDB, expanda
y efectúe una doble pulsación en EJB3CounterDB.zip. Se abre un programa de utilidad
de extracción de archivos en una ventana externa.
: extraiga la base de datos en la carpeta /derby/databases de la carpeta de instalación de
WebSphere Application Server.
: Extraiga la base de datos en la carpeta
/derby/databases de la carpeta de instalación de
WebSphere Application Server.- Otorgue al usuario no root acceso al directorio de bases de datos (la manera más fácil es otorgar acceso a todos los usuarios: chmod ugo+x databases).
- Otorgue al usuario no root acceso de grabación a la base de datos extraída.
(Por ejemplo, puede realizar la extracción como usuario no root, siempre que tenga
acceso al directorio databases).
Importante: En función del tipo de WebSphere
Application Server, la ubicación predeterminada de
/derby/databases
puede ser diferente. Para obtener información sobre directorios de instalación,
consulte el tema sobre la
creación de WebSphere Application Server.
- En la perspectiva Java™ EE, pulse con el botón derecho en el proyecto de aplicación empresarial y seleccione para abrir el asistente de proyecto web.
- En la página Proyecto web,
- En el campo Nombre de proyecto, escriba
EJBCounterWebEE6.
- En el campo Plantillas de proyecto, seleccione Simple.
- En el campo Modelo de programación, seleccione Java EE.
- En la página de despliegue, en la lista de opciones de configuración disponibles, pulse Despliegue para abrir la página Configuración de despliegue.
- En el Tiempo de ejecución objetivo, seleccione WebSphere
Application Developer v8 en el recuadro desplegable.
- Deseleccione Añadir soporte para extensiones y enlaces de WebSphere.
- En el campo Versión de módulo web, seleccione
3.0
- En el campo Pertenencia de EAR, pulse Añadir proyecto a un EAR.
- En el campo Nombre del proyecto EAR, asegúrese de que aparezca EJBCounterSampleEE6EAR.
- Acepte los demás valores predeterminados y pulse Finalizar. Si visualiza la solicitud ¿Abrir perspectiva asociada?, pulse
No.
- Pulse con el botón derecho del ratón en el proyecto
EJBCounterWebEE6 y seleccione
.
- En la página Nueva página web, en el campo Nombre de archivo, escriba EJBCount.jsp, asegúrese de que JSP es la plantilla seleccionada y pulse Finalizar.
- En la vista de origen del editor de páginas web, sustituya todo el código por
el siguiente y pulse Control+S para guardar:
<%@page session="false"%>
<HTML>
<HEAD>
<TITLE>IBM WebSphere EJB 3.1 y ejemplo de contador JPA 2.0</TITLE>
<BODY bgcolor="cornsilk">
<H1>EJB 3.1 y ejemplo de contador JPA 2.0</H1>
<P>
<B>
Esta aplicación se comunica con WebSphere Application Server utilizando solicitudes http para incrementar un bean contador EJB 3.1 singleton que utiliza una entidad JPA 2.0 (es decir, mantiene un contador persistente en una tabla de base de datos Derby).
</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>Pulse el botón de incremento para incrementar el recuento</B>
<BR/><BR/>
<INPUT TYPE=SUBMIT VALUE="Increment">
</FORM>
<H3><%=msg%></H3>
</BODY>
</HTML>
- Pulse con el botón derecho del ratón en el proyecto
EJBCounterWebEE6 y seleccione
.
- En el campo Paquete Java de la página Servlet nuevo, especifique com.ibm.example.websphere.ejb3sample.counter.
- En el campo Nombre de clase especifique
EJBCount y pulse Siguiente:
- En el campo Nombre, escriba EJB Count Servlet. En
el campo Correlaciones de URL, edite la correlación
existente, resalte /EJB Count Servlet y pulse Editar. Sustituya el patrón por /counter y pulse
Finalizar:
- Añada entradas de conjunto de despliegue:
- Pulse con el botón derecho del ratón en el proyecto EJBCounterWebEE6 y
seleccione Propiedades.
- Seleccione Conjunto de despliegue, seleccione
Entradas de manifiesto y pulse Añadir.
- Seleccione EJBCounterSampleEE6.jar, pulse
Finalizar y, a continuación, pulse
Aceptar.
- Expanda
y efectúa una doble pulsación sobre el archivo EBJCount.java. Se
abre en el editor Java.
- Sustituya el código por el código siguiente y pulse Control+S para guardar:
package com.ibm.example.websphere.ejb3sample.counter;
// Este programa puede utilizarse, ejecutarse, copiarse, modificarse y distribuirse
// libre de derechos de autor a efectos de desarrollo, utilización, comercialización o distribución.
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;
/**
* Este servlet muestra un bean de contador EJB3 con JPA.
*/
@WebServlet(
description="Este servlet muestra las diversas formas de incrementar beans de contador EJB 3.1.,
name="Servlet de recuento EJB",
displayName="Servlet de recuento EJB",
urlPatterns="/counter"
)
public class EJBCount extends HttpServlet {
private static final long serialVersionUID = -5983708570653958619L;
// Utilizar inyección para obtener el 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;
// Establecer atributos y asignar el 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;
// Establecer atributos y asignar el JSP.
req.setAttribute("msg", msg);
RequestDispatcher rd = getServletContext().getRequestDispatcher("/EJBCount.jsp");
rd.forward(req, res);
}
}
Ahora ya está preparado para pasar el Ejercicio 1.5, Crear un
proyecto de fragmento web para probar la aplicación.