Estigmatizados

La informática profesional no es un juego de políticos

Netbeans Visual JSF Portlet en Tomcat 6 – Logging needed

TomcatSigo con problemas a la hora de iniciar la aplicación web que contiene el portlet JSF desarrollado conportal-pack-site-logo-medium Netbeans. En el catalina_xxx.log de Tomcat tan sólo aparecen unas escuetas líneas de error que poca luz aportan al problema.

08-sep-2009 17:27:31 org.apache.catalina.core.StandardContext start
GRAVE: Error listenerStart
08-sep-2009 17:27:31 org.apache.catalina.core.StandardContext start
GRAVE: Falló en arranque del Contexto [/AlfrescoPortlets] debido a errores previos

Accediendo a la consola de Tomcat Manager compruebo que la aplicación en el contexto Alfrescoportlets (mi aplicación con los portlets) no puede arrancar. Sé que debe estar relacionado con el JAR Hell o alguna dependencia que me falta, pero en el puñetero (con perdón) Tomcat 6 las cosas no están tan claras como en mi “amado” Tomcat 5.x. ¿Dónde demonios salen los ClassNotFoundException? ¿Por qué todo el mundo se empeña en complicar las cosas?

No me ha quedado otro remedio que definir una configuración un poco más coherente:

http://tomcat.apache.org/tomcat-6.0-doc/logging.html

1. Configurar log4j 1.2

Creamos un archivo log4j.properties con un contenido tal como el mostrado a continuación:

log4j.rootLogger=debug, R
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=${catalina.home}/logs/tomcat.log
log4j.appender.R.MaxFileSize=10MB
log4j.appender.R.MaxBackupIndex=10
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
log4j.logger.org.apache.catalina=DEBUG, R
# Quito el nivel de debug a commons porque si no me vuelve loco
log4j.logger.org.apache.commons=INFO, R

Este fichero lo copiamos el directorio lib de Tomcat, en mi caso
C:\desarrollo\java\install\apache-tomcat-6.0.20\lib

Descargamos log4j, versión 1.2 de la web
http://logging.apache.org/log4j/1.2/download.html

Lo descomprimimos y copiamos el archivo log4j-1.2.15.jar en el mismo directorio lib donde teníamos el log4j.properties
C:\desarrollo\java\install\apache-tomcat-6.0.20\lib

2. Instalar extensiones de Logging

Ahora vamos a descargar las extensiones para Logging. Las descargamos de:
http://apache.rediris.es/tomcat/tomcat-6/v6.0.20/bin/extras/

Hacemos una copia de seguridad del archivo tomcat-juli.jar que se encuentra en el directorio bin de Tomcat (por ejemplo: tomcat-juli.jar.original_20090908)
tomcat-juli.jar –> C:\desarrollo\java\install\apache-tomcat-6.0.20\bin

Ahora cogemos el nuevo tomcat-juli.jar (que acabamos de descargar) y lo copiamos sobre el antiguo que tenemos en bin

Cogemos el tomcat-juli-adapters.jar que acabamos de descargar y lo copiamos al directorio lib de Tomcat
tomcat-juli-adapters.jar –>   C:\desarrollo\java\install\apache-tomcat-6.0.20\lib

3. Fin

Ya tenemos un log medio decente. Podemos verlo en el directorio logs de Tomcat, con el nombre tomcat.log. Es conveniente configurar bien el log4j.properties porque en caso contrario se “logarán” millones de líneas.

Analizando este nuevo log he podido encontrar el maldito ClassNotFoundException:

DEBUG http-8080-1 org.apache.catalina.loader.WebappClassLoader - Could not clean fields for class com.sun.faces.vendor.GlassFishInjectionProvider
 java.lang.NoClassDefFoundError: com/sun/enterprise/InjectionException

Qué mal rollito me da esto. Estas dependencias a GlassFish en Tomcat????!!!!!!!!!!!!!!!!!!!!!!!!!!

septiembre 8, 2009 - Posted by | Portales | , ,

Aún no hay comentarios.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: