Proyecto con JSF Java
Server Faces Myfaces, Maven y Eclipse: pruebas con Jetty y Tomcat
Proyecto con JSF Java Server Faces
Myfaces, Maven y Eclipse: pruebas con Jetty y Tomcat 1
Probando la aplicación con el plugin
jetty. 1
Probando la aplciación con el Tomcat
5.5 y Eclipse. 4
Añadiendo la ventana de servidores. 4
Añadiendo un servidor Tomcat local 5
Añadiendo el módulo de aplicación web
a mano. 9
Viendo las carpetas temporales del
Tomcat 13
Probando la aplicación web en el
navegador 14
Compilando código de Java 5.0. 14
Qué necesito para realizar los
ejemplos y de dónde lo descargo. 15
Modificando el faces-config.xml 15
Introducción
En este tutorial seguimos la serie de nuestros tutoriales
para hacer una aplicación web con Java, Maven, Eclipse e Hibernate. Vamos a
realizar las pruebas de la aplicación sobre dos servidores web diferentes: el
servidor Jetty, integrado en Maven, y el servidor Tomcat, que lo integraremos
con Eclipse. La ventaja del servidor Jetty es que es muy fácil de configurar y
de ejecutar, pero no permite la depuración de la aplicación. El Tomcat se
ejecuta desde el Eclipse, y permite la depuración mediante puntos de ruptura en
las clases java.
Probando la aplicación con el plugin jetty
El servidor Jetty es un servidor web escrito en Java y que
se integra de manera sencilla en otras aplicaciones. Está integrado a través
de un plugin en Maven, de manera que su uso es muy sencillo desde Maven, lo que
nos permitirá probar y ejecutar nuestra aplicación web en segundos. Además el
plugin de MyFaces configura automáticamente nuestra aplicación para poder
usarla con Jetty.
Normalmente las aplaciones web se pueden probar desde Maven
2 con el plugin de jetty. Para ello basta añadir al POM del proyecto las
siguientes líneas:
pom.xml |
<project> …
<build> <plugins> <plugin> <configuration> </configuration> </plugin> </plugins> </build>… </project> |
Como nuestra aplicación contiene el framework JSF, el plugin
de jetty debe también incluir una serie de bibliotecas jars del Tomcat. Para
ello cuando se crea el POM del proyecto, el plugin de myfaces le añade un
perfil al POM que le permitirá ejecutar el plugin de jetty sin problemas. En
nuestro caso nos queda la configuración del plugin como sigue:
coregest\pom.xml |
<project> …
<!– Profile to run jetty, so the tomcat jars are <profiles> <profile> <id>jettyConfig</id> <build> <plugins> <plugin> <configuration> </configuration> </plugin> </plugins> </build>
<dependencies> <dependency> <groupId>net.sf.coregest</groupId> <artifactId>coregest-core</artifactId> <version>1.0-SNAPSHOT</version> <scope>compile</scope> </dependency> <dependency> <version>2.0</version> <scope>compile</scope> </dependency> <dependency> <groupId>tomcat</groupId> <version>5.5.9</version> <scope>compile</scope> </dependency> <dependency> <groupId>tomcat</groupId> <version>5.5.9</version> <scope>compile</scope> </dependency> <dependency> <groupId>tomcat</groupId> <version>5.5.9</version> <scope>compile</scope> </dependency> </dependencies>
<pluginRepositories> <!– Repository to get the jetty plugin <pluginRepository> <id>mortbay-repo</id> <name>mortbay-repo</name> </pluginRepository> </pluginRepositories>
</profile> </profiles></project> |
También debemos incluir la dependencia de nuestro módulo
coregest-core, que he añadido al principio.
Este perfil se activa con la opción –P nombreDelPerfil (en
nuestro caso jettyConfig) del maven, por lo que para llamar al plugin haremos
mvn –P jettyConfig jetty:run
Al finalizar la ejecución del comando se lanza el servidor
Web jetty
Ahora podemos probar la aplicación, probando con nuestro
navegador en la dirección local http://localhost:8080/coregest/index.jsp,
que es la página de inicio de la aplicación.
Como vemos, tal y como está construida la aplicación,
inmediatamente nos redirige al servlet de jsf.
Probando la aplciación con el Tomcat 5.5 y Eclipse
Para probar la aplicación con Tomcat 5.5 debemos tener
instalado un Tomcat en local. Yo suelo instalarlo en D:\apps\apache-tomcat-5.5.17
a partir del zip correspondiente, que nos bajamos de http://tomcat.apache.org, por lo que se
debe hacer esto primero. Basta simplemente con descomprimirlo en esta ruta para
nuestros propósitos.
Añadiendo la ventana de servidores
Desde Eclipse 3.2, abrimos la ventana de Servers con la
opción del menú Windows\ShowView\Others…,
En este cuadro de diálogo seleccionamos Servers\Servers y
pulsamos OK
Añadiendo un servidor Tomcat local
El Eclipse nos muestra ahora el panel de servidores. Con el
botón secundario en el interior del panel añadimos un nuevo servidor Tomcat
5.5.
Pulsamos “Next”
Hay que poner nuestra ruta al tomcat y el runtime Java para
el tomcat. Yo suelo poner siempre el que estoy usando, para que el no haya
problemas si tengo varios.
Añadimos el módulo que contiene el webapp al tomcat y
finalizamos
Añadiendo el módulo de aplicación web a mano
Ahora aparece la ventana de Servers con el nuevo Tomcat. Haciendo
doble click en el servidor tomcat del panel Servers podemos ver su
configuración
Hay que asegurarse de que en la pestaña “Modules” aparezca
nuestro módulo coregest. En otro caso habremos tenido problemas… Pincho en la
pestaña y ya veo que los tengo.
No hay problema, lo añado de nuevo. Pulso en “Add web
module” y me sale el cuadro para elegir un módulo que sea un proyecto web:
Eligo mi módulo coregest y pulso OK
Esto es otra cosa. Como vemos el Eclipse 3.2 tiene pequeños
fallos por ahí sueltos. Ahora al pulsar el botón de ejecutar Eclipse nos pide
que guardemos la configuracion nueva del Tomcat:
y se arranca el tomcat del Eclipse
Viendo las carpetas temporales del Tomcat
Si queremos ver dónde están los ficheros de nuestro tomcat
abrimos en el explorador la siguiente ruta: {workspace}\.metadata\.plugins\org.eclipse.wst.server.core\tmp0.
Dentro de esta carpeta están los archivos de configuración del tomcat y el
webapp. También está la carpeta work (esa que deberemos borrar de vez en cuando
para que Tomcat cargue las clases que hemos desarrollado y no las carga…). Mi
consejo: crearos un acceso directo a esa carpeta porque lo vais a usar mucho
con Eclipse 3.2 y Tomcat 5.5.
Probando la aplicación web en el navegador
Ahora sólo nos falta abrir el navegador en http://localhost:8080/coregest/index.jsp
para probar si funciona todo.
Ya tenemos el Tomcat funcionando y listo para depurar
nuestra aplicación.
Importante: estos pasos se aplican a Eclipse 3.2 y Tomcat
5.5. En Eclipse 3.3 el plugin ha cambiado y el de Eclipse 3.1 también era
diferente. Aunque los pasos son similares hay que tener en cuenta los cambios.
Compilando código de Java 5.0
Si nuestro proyecto tiene módulos cuyo código fuente sea
Java 5.0 (por ejemplo si usamos genéricos de Java como en List<MiClase>),
debemos habilitar la compilación de dicho código fuente. Para ello debemos
modificar el plugin de compilación, en el POM del proyecto
coregest\pom.xml |
<project>
<build> <finalName>coregest</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin> </plugins>
</build> |
Preguntas frecuentes
Qué necesito para realizar los ejemplos y de dónde
lo descargo
- JDK 1.5. Hay que descargarlo de la página de Sun. http://java.sun.com, y buscar en download
el JDK de la edición estándar (JDK 1.5 SE) . Normalmente tendremos
vínculos a las descargas más populares en la página principal. - Eclipse. Se descarga de www.eclipse.org.
Hay que descargarse el Eclipse correspondiente a nuestra plataforma
Modificando el faces-config.xml
Cuando creamos el proyecto con el plugin de archetype de
MyFaces, el fichero de configuración por defecto se llama example-config.xml.
Si lo renombramos simplemente a faces-config.xml se podrá abrir correctamente
el plugin de JSF de Eclipse.
Conclusión
En este tutorial hemos visto cómo probar nuestra aplicación
web de dos modos diferentes, uno muy sencillo con Jetty y otro más avanzado y
potente con Eclipse y Tomcat. Cada uno tiene sus ventajas y sus desventajas,
pero siempre podremos probar rápidamente nuestra aplicación web.