En el post anterior hemos añadido las dependencias que necesitamos para nuestra aplicación .Ahora simplemente vamos a construirla, para ello necesitaremos un ManagedBean que escriba mensajes a log y el fichero log4j.properties que se encarga de configurar nuestro sistema de Log. En este caso la configuración del log será muy sencilla apoyándonos en la consola. Vamos a ver donde ubicar estos dos ficheros.
El fichero de log4j.properties le hemos ubicado en la carpeta de recursos y tiene el siguiente contenido:
log4j.rootLogger=INFO, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern= %m%n
El fichero de código fuente le hemos ubicado en la carpeta src/java/main y tiene el siguiente contenido:
package com.arquitecturajava.proyecto.beans;
import javax.faces.bean.ManagedBean;
import org.apache.log4j.Logger;
@ManagedBean(name="logManagedBean")
public class LogManagedBean {
public String mensaje(){
Logger milogger= Logger.getLogger(this.getClass().getPackage().getName());
milogger.info("hola desde jsf al log");
return "log";
}
}
Una vez tenemos estos dos ficheros vamos a ver donde hemos ubicado los otros dos ficheros que necesitamos web.xml y Log.xhtml .
Podemos ver que dentro de la carpeta de webapp hemos alojado el fichero Log.xhtml para después crear la carpeta WEB-INF y alojar dentro de ella el fichero web.xml .El contenido de estos ficheros es el siguiente:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Bienvenido</title>
</h:head>
<h:body>
<h:form>
<h:commandButton value="Aceptar" action="#{logManagedBean.mensaje}" />
</h:form>
</h:body>
</html>
web.xml:
<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="3.0"> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>/faces/*</url-pattern> </servlet-mapping> </web-app>
Realizadas todas estas operaciones podemos usar mvn package y empaquetar la aplicación para desplegarla en un Tomcat.Al desplegarla en Tomcat solicitaremos la página Log.xhtml
Hecho esto pulsaremos sobre el botón y nos realizará log por consola :
Tenemos correctamente desplegada una aplicación web con estructura y dependencias de Maven en un Tomcat . Sin embargo nos queda un tema puntual . El plugin que tenemos instalado m2e no soporta una integración con el Tomcat interno del Eclipse .En el siguiente post cubriremos este problema.