Estoy buscando actualizar nuestra instancia tomcat de 5.5.27 a 6.0.32 y estoy teniendo algunos problemas con el registro de jar en el directorio shared/lib (he creado este directorio en tomcat 6).Obteniendo jar en tomcat/shared/lib para iniciar sesión usando la configuración de la aplicación web llamándolos
Tenemos un archivo jar que creamos como parte de nuestro proceso de compilación con algún código común en él y bajo Tomcat 5 esto vivió en shared/lib. Cuando escribimos las instrucciones de registro del código en este archivo jar, se escribieron en el archivo de registro de la aplicación web que llama al contenedor en ese momento. Cada uno de nuestros webapps tiene un log4j.properites y log4j.jar en su directorio WEB-INF/lib, y también había un log4j.jar en shared/lib, pero no log4j/properties.
Estamos utilizando log4j y obtener referencias a los registros de la siguiente manera:
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class MyClass {
private final static Log CLASS_LOG = LogFactory.getLog(MyClass.class);
}
Pero cuando muevo la misma configuración exacta de nuestros tarros, aplicaciones web, log4.properties y log4j.jars en Tomcat 6, el las declaraciones de registro de nuestro contenedor común solo van a catalina.log.
He leído bastante (incluso http://www.mulesoft.com/tomcat-classpath y el cargador de clases y documentos de registro en el sitio web de tomcat) y sobre todo no puedo entender cómo funcionaba de la forma en que lo hizo en tomcat 5. (No lo configuré, es algo que he heredado y que hasta ahora 'ha funcionado').
¿Alguien tiene alguna experiencia similar al tratar de obtener registros de libs compartidas en archivos de registro de aplicaciones web? Estoy pensando que poner el contenedor compartido en el directorio WEB-INF/lib de cada webapp ordenaría esto, pero luego terminaría con muchas copias de la misma cosa.
Empaque las jarras compartidas con las aplicaciones web individuales; ahorrar unos pocos megas de RAM no vale la pena los dolores de cabeza de carga de clases. Además, es bastante probable que tarde o temprano sus aplicaciones requieran versiones diferentes de las dependencias. – Dmitri
@Dmitri +1 porque lo considero una solución, pero no veo por qué es solo un comentario y no se proporciona como respuesta. – Gressie