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 acciones siguientes:
- Crear un proyecto web, EJBCounterWeb
- Crear una página web, EJBCount.jsp
- Crear un servlet, EJBCount.java
- Ejecutar el servlet para probar la aplicación
- Extraiga EJBCounterDB
- Descargue la base de datos necesaria, que proporciona persistencia para el proyecto de contador EJB 3.1.
- Expanda y efectúe una doble pulsación en EJBCounterDB.zip.
: 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 EJBCounterWeb.
- En el campo Plantillas de proyecto, seleccione Simple.
- En el campo Modelo de programación, seleccione Java EE. Pulse Siguiente.
- 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 Tiempo de ejecución de destino seleccione una versión admitida de WebSphere Application
Developer en el recuadro desplegable.
- Deseleccione Añadir soporte para enlaces y extensiones de WebSphere si está seleccionado.
- 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 de proyecto EAR, asegúrese de que aparezca EJBCounterWebEAR.
- Acepte los demás valores predeterminados y pulse Finalizar. Si aparece la solicitud ¿Abrir perspectiva asociada?, pulse No.
- Pulse el proyecto EJBCounterWeb con el botón derecho del ratón y seleccione
.
- En el campo Nombre de archivo de la Pagina web
nueva, especifique EJBCount.jsp. Asegúrese de que se haya seleccionado JSP como plantilla 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 EJB3 and JPA1 Counter Sample</TITLE>
<BODY bgcolor="cornsilk">
<H1>EJB 3.0 and JPA 1.0 Counter Sample</H1>
<P>
<B>
Esta aplicación se comunica con WebSphere Application Server mediante solicitudes http para incrementar un bean de contador EJB 3.0 sin estado que utiliza una entidad JPA 1.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 el proyecto EJBCounterWeb con el botón derecho del ratón 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, escriba 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:
- Pulse con el botón derecho del ratón el proyecto EJBCounterWeb y seleccione Propiedades.
- Seleccione Conjunto de despliegue, seleccione
Entradas de manifiesto y pulse Añadir
- Seleccione EJBCounterSample.jar y pulse Finalizar y, a continuación, pulse Aceptar Si no aparece el archivo EJBCounterSample.jar, pulse el enlace Configurar entradas de manifiesto disponibles y seleccione EJBCounterSample de la columna Origen en la ventana
Ensamblaje de módulos EAR y, a continuación, pulse Aplicar y, a continuación, pulse Aceptar. Finalmente, en la ventana Añadir entradas de manifiesto, pulse Finalizar y en la ventana
Propiedades 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.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Este servlet muestra un bean de contador EJB3 con JPA.
*/
public class EJBCount extends HttpServlet {
private static final long serialVersionUID = -5983708570653958619L;
// Utilizar inyección para obtener el 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 = "Valor de EJB Count para bean sin estado con 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 = statelessCounter.increment();
}
catch (RuntimeException e) {
msg = "Error - increment() method on EJB failed!";
e.printStackTrace();
}
msg = "Valor de EJB Count para bean sin estado con JPA: " + ejbCount;
// Establecer atributos y asignar el JSP.
req.setAttribute("msg", msg);
RequestDispatcher rd = getServletContext().getRequestDispatcher("/EJBCount.jsp");
rd.forward(req, res);
}
}
- En la vista Explorador empresarial, expanda y pulse el botón derecho del ratón en el archivo EJBCount.java y seleccione y pulse Finalizar.
- La aplicación de contador se abrirá en un navegador web.
Ha completado la guía de aprendizaje del contador EJB 3.0.