Eclipse -- IX -- Construir y Ejecutar Aplicaciones Web con WTP

Puede encontrar la versión original de este artículo en Inglés en:

http://eclipse.org/articles/

Entorno

Java Development Kit

Necesitará una versión del Java Development Kit (JDK) 1.4.2 o superior, como requiere Eclipse 3.1. El Java Runtime Environment (JRE) es suficiente para Eclipse pero no es adecuado para el desarrollo de aplicaciones web. Puede obtener la última versión del JDK desde Sun.

Nota:
La mayoría de los servidores requieren herramientas como el compilador java (que se encuentra en tools.jar), que sólo están disponibles en el JDK no en el JRE.

Servidor

Vamos a construir una aplicación web que se ejecuta sobre un servidor. Para seguir con este artículo necesitará un servidor que esté soportado por WTP. Apache Tomcat, ObjectWeb Jonas, y JBoss son algunos de los servidores de código abierto soportados por WTP. Necesitará descargar e instalar el servidor antes de poder empezar a trabajar con WTP. WTP no viene con ningún servidor incorporado. Más adelante aprenderá como decirle a WTP que utilice su servidor preferido.

Eclipse y otros Proyectos Eclipse

Obviamente, necesitará una instalación de eclipse. El motor de Eclipse utilizado en este artículo es eclipse-SDK-3.1.1-linux-gtk-x86_64.tar.gz. Seguro que podrá encontrar una versión de eclipse apropiada a su plataforma.

WTP utiliza componentes de otros proyectos de eclipse. eclipse modeling framework, emf, java emf model, jem, se utilizan para definir modelos de artefactos definidos en muchos estándares Java, W3C, XML y J2EE. graphical editing framework, gef, se utiliza para proporcionar capacidades de edición gráfica para los editores xml, xsd y wsdl, etc. Puede obtener estos componentes desde sus respectivas páginas de proyecto:

Web Tools Platform

Necesitará descargar todo el paquete WTP que se utiliza en este artículo desde wtp downloads. Necesitará un entorno de ejecución WTP.

Una vez que haya descargado todo, instalado el JDK y su entorno de servidor favorito, y haya descomprimido los ficheros zip de eclipse, emf, gef, jem y wtp a una carpeta, estará listo para seguir!

Configuración

Preferencias

Después de lanzar Eclipse por primera vez, pero antes de poder construir su primera aplicación Web, necesita hacer un poco de trabajo de limpieza. Si no está ya definido necesitará configurar las preferencias de Java para apuntar a su instación del JDK. Debería haber obtenido el último JDK desde Sun.

 

Elegir un Entorno de Ejecución de Servidor

Este paso implica cambiar o crear las selecciones para los entornos de ejecución de servidores instalados. Durante el desarrollo de aplicaciones Web, necesitaremos un entorno de ejecución de servidor para probar, depurar y ejecutar nuestro proyecto. Empezaremos diciendo a WTP qué servidor tenemos, y dónde está localizado. Un "Entorno de Ejecución de Servidor" no es un servidor. Proporciona el entorno, las librerías y la infraestructura que necesita un "Servidor". Un servidor es un ejemplar de un entorno de ejecución que puede hospedar nuestra aplicación Web y otros componentes del lado del servidor. Para definir un entorno de ejecución de servidor necesitamos visitar la página de preferencias apropiada:

 

Aquí encontrará una lista de entornos de servidor que ya han sido definidos. Puede elegir un entorno de servidor y cambiar sus propiedades. Puede añadir uno nuevo pulsando sobre Add. Aparecerá un asistente que mostrará una lista de los servidores soportados por WTP. Elija uno de los entornos de servidor de la lista. Jonas y JBoss están soportados actualmente como un Generic Server Runtime básico para la J2EE Runtime Library no es un verdadero entorno de servidor, pero puede utilizarse como soporte para codificación. No proporciona un ejemplar de servidor que se pueda utilizar para ejecutar componentes web.

Después de pulsar Next habrá que seleccionar el JDK y la carpeta donde ha instalado el entorno del servidor. Por supuesto, basándose en su elección, se le pedirá que proporcione diferentes propiedades. Pulse sobre Finish. Ahora puede pasar la parte divertida.

 

Nota:
Hemos elegido Apache Tomcat. Usted también puede elegir otro servidor como ObjectWeb Jonas. Si quiere utilizarlos como su entorno de servidor, seleccione el Generic Server y siga el asistente para definir las propiedades de Jonas, JBoss o Weblogic. Hay diferencias entre los entornos de servidor; Apache Tomcat proporciona soporte de desarrollo dinámico; es decir, la habilidad de ejecutar aplicaciones Web desde el proyecto Eclipse sin necesidad de publicar los elementos en un servidor. El servidor genérico no soporta el desarrollo dinámico, pero publicará automáticamente los artefactos (su aplicación Web) en el servidor cuando la ejecute.

Desarrollar la Aplicación

En esta sección crearemos una aplicación Web J2EE que contiene los componentes típicos como Servlets y JSPs. Específicamente vamos a:

  1. Crear un proyecto con un módulo web.
  2. Crear un Servlet
  3. Editar el descriptor de despliegue
  4. Crear y editar una JSP

Crear un Proyecto Web J2EE con un módulo Web

Vaya a New->Project. Elija la categoría Web de la lista de asistentes disponibles para crear un nuevo recurso eclipse. Encontrará dos tipos de proyectos bajo esta categoría. Simple Web Project es un proyecto de recurso básico de Eclipse que se puede asociar con un servidor. Estámos interesados en crear una Aplicación Web J2EE, por eso elegiremos J2EE Web Project aquí:

 

Un Proyecto Web J2EE es un tipo de proyecto Java que ha sido inicializado para hospedar una aplicación del lado del servidor. Necesita estar asociado con Target Server (Servidor Objetivo).

Un servidor objetivo proporciona el contenedor que se utilizará para ejecutar nuestra aplicación Web. Específicamente, proporciona un conjunto de librerías (jars), que se añaden al classpath del proyecto, que son necesarias para compilar nuestras clases personalizadas. Por ejemplo, para crear un nuevo Servlet, necesitamos los paquetes javax.servlet.*. Estos no son parte de las librerías del JDK. El entorno de servidor los proporciona al proyecto. Si se saltó los pasos prévios donde definimos el entorno de servidor, tendrá una oportunidad de definir uno aquí pulsando sobre el botón New.

Aségurese de que no está seleccionada la opción Add module to an EAR project. Crearemos una aplicación web solitaria que podamos desplegar como un módulo web estándar.

Finalmente cambiaremos el contexto raíz a tutorial. Esto se utiliza cuando usted accede a la aplicación web con una URL, es decir: http://localhost:8080/tutorial.

 

Cuando el asistente complete su tarea, encontrará que se ha creado un nuevo proyecto Java y se ha inicializado para que usted pueda iniciar el desarrollo de forma inmediata: ha creado un carpeta para código fuente Java. Añadirá a ella cualquier paquete y clase personalizada que cree. Ha definido el classpath (JRE y Tomcat) para que disponga de las librerías necesarias para su proyecto. Ha creado una carpeta de recursos llamada Web Content que imita la estructura WAR estándar de la especficación J2EE. Contendrá los recursos web que empaquetaremos con el módulo Web. Todos los artefactos que haya dentro de esta carpeta serán accesibles desde el contexto de la aplicación Web.

 

El Diseño

Esta es una sencilla aplicación Hello WTP. Llamaremos a un sencillo servlet SnoopServlet, que mostrará información sobre el navegador cliente en un fichero JSP.

 

Crear un Servlet

Vaya a New->Class. Cree una nueva clase Java que sea una subclase de javax.servlet.http.HttpServlet:

 

Añada el siguiente código al servlet recien creado:

package org.eclipse.wtp.tutorial;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class SnoopServlet extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        String userAgent =  req.getHeader("user-agent");
        String clientBrowser =  "Not known!";	
        if( userAgent != null)
            clientBrowser = userAgent;
        req.setAttribute("client.browser",clientBrowser );
        req.getRequestDispatcher("/showBrowser.jsp").forward(req,resp);
    }
}
			

Editar el Descriptor de Despliegue del Módulo Web

Los módulos Web en J2EE tienen un descriptor de despliegue donde se configura la aplicación web y sus componentes. Estos descriptores de despliegue se llaman web.xml. De acuerdo a la especificación J2EE, debe estár localizado en la carpeta WEB-INF. web.xml debe contener las definiciones del Servlet y el mapeo URI de éste. Introduzca las siguientes líneas en el fichero web.xml:

<servlet>
    <servlet-name>Snoop Servlet</servlet-name>
    <servlet-class>org.eclipse.wtp.tutorial.SnoopServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Snoop Servlet</servlet-name>
    <url-pattern>/snoop/*</url-pattern>
</servlet-mapping>
			

Puede obtener un asistente de código en el editor XML de WTP mientras edita este fichero pulsando [Ctrl]+[Space].

 

Añadir una JSP

Vaya a New->File. Seleccione la carpeta WebContent e introduzca showBrowser.jsp como nombre de fichero.

 

Nuestro fichero se abrirá con un JSP Source Page Editor. Pulse [Ctrl]+[Space] y elija la plantilla Html. Puede obtener asistentes de código HTML, JavaScript, JSP y Java en el editor JSP.

 

El Editor de páginas fuente JSP también proporciona un asistente de código Java. Pruebe esto dentro una expresión JSP:

 

Al finalizar su página JSP debería tener el siguiente código:

Truco: Use la plantilla de tabla

Listado 3. showBrowser.jsp

<html>
<head><title>Show Browser</title></head>
<body>
<table border="1">
    <tr> <th>Header</th><th>Value</th></tr>
    <tr>
        <td>user-agent</td>
        <td><%= request.getAttribute("client.browser")%></td>
    </tr>
</table>
</body>
</html>
			

Explorar nuestro Trabajo

Vaya al menú Window >Show View y seleccione la vista Project Explorer en la categoría J2EE.

 

El explorador de proyectos es un navegador inteligente que conoce la web y los artefactos J2EE. Podrá navegar por su módulo web, los descriptores de despliegue y los contenidos de estos. Por ejemplo, podemos navegar por el descriptor de despliegue y observar nuestro servlet y sus mapeos:

 

Ejecutar la Aplicación

En esta sección ejecutaremos nuestra recien desarrollada aplicación Web en un servidor.

El Proyecto tiene Propiedades de Servidor

En el explorador de paquetes Java o el Explorador de Proyectos J2EE, seleccione el nombre de su proyecto (WTP-Tutorial-I) y utilizando el menú contextual (botón derecho del ratón) elija la opción Properties. Como alternativa puede pulsar [Alt]+[Enter]. Esto mostrara la ventana de propiedades del proyecto. Aquí se pueden seleccionar el entorno de ejecución y el servidor por defecto para el proyecto. Recuerde que ya elegimos el entorno de ejecución cuando creamos el proyecto. Aquí puede elegir un entorno de ejecución diferente. Esto cambiará las librerías que se utilizan para compilar el proyecto. También puede elegir aquí un servidor por defecto. El servidor por defecto es el servidor en el que se desplegará y se ejecutará la aplicación. Si no ha definido préviamente un servidor y lo ha seleccionado por defecto, verá un mensaje en la vista de propiedades. Para crear un servidor, tendrá que cancelar esta ventana y volver después de haber creado el servidor.

Crear un Servidor

Los servidores se puede crear utilizando la vista correspondiente. Para abrir la vista de servidores vaya a Window->Show View->Other y seleccione Servers bajo la categoría Server:

 

La vista de servidores le permite crear servidores partiendo de los entornos de ejecución de servidores instalados. Use el menú contextual del botón derecho del ratón para crear un nuevo servidor.

 

En el siguiente asistente, elija la dirección del servidor donde desplegará (publicará) su módulo Web. También tendrá que elegir el tipo de servidor y, si tiene definidos más de un entorno instalados para este servidor (vea las preferencias) elija el entorno de ejecución. Cuando pulse sobre Next, para pasar a la ventana de instalación de aplicaciones:

 

Pulse sobre Finish y tendrá su servidor!:

 

Ahora puede volver a las propiedades del proyecto y seleccione su servidor por defecto:

 

Arrancar el Servidor

En la vista del servidor, pulse con el botón derecho sobre su servidor y elija la opción start, o simplemente puede pulsar el botón start. Verá como cambia el estado del servidor de Stopped a Starting y cuando el servidor esté listo cambiará a Started.

 

Ejecutar la Aplicación

Abra su navegador favorito y teclee la dirección http://localhost:8080/tutorial/snoop.

 

 

Si puede ver algo parecido a esto, es que la aplicación Web ha funcionado, enhorabuena!

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP