Tengo algunos problemas al tratar de cargar libs desde mi aplicación en lugar de lo que viene con JBoss.Cómo configurar JBOSS 5.1.0 GA ClassLoader
estoy tratando de hacer uso de la última y más grande SLF4J en mi solicitud y, al hacerlo estoy recibiendo los siguientes mensajes:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [vfszip:/C:/devtools/workspace/g2/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_5.1_Runtime_Server1302541739184/deploy/ecotrakEar.ear/ecotrak.war/WEB-INF/lib/slf4j-log4j12-1.6.1.jar/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [vfszip:/C:/devtools/jboss-5.1.0.GA/common/lib/slf4j-jboss-logging.jar/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
en mi aplicación tengo los siguientes frascos situados en mi lib GUERRA directorio:
- Jul-a-slf4j-1.6.1.jar
- slf4j-api-1.6.1.jar
- slf4j-log4j12-1.6.1.jar
Mi proyecto se implementa como un EAR con WAR. Todas las bibliotecas residen en WAR.
En base a algunas investigaciones, se ha sugerido que para JBoss 5.1 se cree un archivo jboss-classloading.xml. He creado uno para mi EAR:
<classloading xmlns="urn:jboss:classloading:1.0"
name="ecotrak.ear"
domain="ecotrak.ear"
export-all="NON_EMPTY"
import-all="true"
parent-first="false">
</classloading>
Esto identifica que el archivo EAR debe cargarse primero.
También han creado una para mi guerra:
<classloading xmlns="urn:jboss:classloading:1.0"
name="ecotrak.war"
domain="ecotrak.war"
parent-domain="ecotrak.ear"
top-level-classloader="true"
export-all="NON_EMPTY"
import-all="true"
parent-first="true">
</classloading>
Con esta configuración estoy recibiendo el siguiente error en los registros de inicio:
11:18:07,949 ERROR [[/ecotrak]] Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V
at org.apache.commons.logging.impl.SLF4JLocationAwareLog.trace(SLF4JLocationAwareLog.java:107)
Cuál es la manera correcta con el fin de tener Los frascos de mi proyecto se cargan antes de JBoss's?