maven - classic - logback pattern
Logback no funciona con JBoss EAP 6.1 (2)
Tengo una aplicación web maven en la que estoy usando logback y JBoss EAP 6.1 como servidor. El problema es que cuando lo despliego en el servidor, mi logback.xml se ignora y se utiliza la configuración predeterminada de logback, que se imprime en la consola en lugar de en mi archivo de registro. El registro funciona bien si despliego mi aplicación en tomcat.
He puesto logback.xml en src / main / resources.
Se encontró una pregunta similar en: Configuración de registro en Logback + SL4J + JBoss EAP 6.0 y Logback y Jboss 7: ¿no funcionan juntos? pero no sirve ...
Olvidé compartir la solución antes ... aquí está -
Necesitamos agregar las siguientes líneas en jboss-deployment-structure.xml
<exclusions>
<module name="org.apache.commons.logging" />
<module name="org.slf4j" />
<module name="org.slf4j.ext" />
<module name="org.slf4j.impl" />
<module name="org.apache.log4j" />
</exclusions>
Entonces todo el archivo se ve como ...
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<!-- Exclusions allow you to prevent the server from automatically adding
some dependencies -->
<exclusions>
<module name="org.apache.commons.logging" />
<module name="org.slf4j" />
<module name="org.slf4j.ext" />
<module name="org.slf4j.impl" />
<module name="org.apache.log4j" />
</exclusions>
</deployment>
</jboss-deployment-structure>
Si tienes un proyecto maven, puedes poner este archivo en:
<project>/webapp/META-INF/jboss-deployment-structure.xml
Ahora el registro funcionará bien.
Primero, gracias a @popeye
Subiendo a lo que @popeye ha definido bien, aquí están mis 2 centavos
Ubicación de '' jboss-deployment-structure.xml
'': src/main/webapp/WEB-INF/jboss-deployment-structure.xml
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<!-- Hey Server please don''t add these dependencies. I don''t need them.
I have mine in my application dependencies -->
<exclusions>
<module name="org.apache.commons.logging" />
<module name="org.slf4j" />
<module name="org.slf4j.ext" />
<module name="org.slf4j.impl" />
<module name="org.apache.log4j" />
</exclusions>
<dependencies>
<module name="com.oracle" />
<module name="org.jboss.ironjacamar.jdbcadapters" slot="main" />
</dependencies>
</deployment>
</jboss-deployment-structure>
Ahora, logback.xml
está en acción. ¡yo!
- ¿Por qué es necesario -
<module name="com.oracle" />
?
Este es el nombre del módulo de controlador que mencionaste en JBOSS standalone.xml
<subsystem xmlns="urn:jboss:domain:datasources:1.1">
<datasources>
<datasource><!-- your configurations --></datasource>
<drivers>
<driver name="ojdbc6-11.2.0.4" module="com.oracle">
<xa-datasource-class>oracle.jdbc.OracleDriver</xa-datasource-class>
</driver>
</drivers>
</datasources>
</subsystem>
Tenga en cuenta que esto es para el servidor JBOSS a la comunicación de la base de datos. [Incluso si tiene ojdbc6-11.2.0.4.jar
en su proyecto / lib necesita esta configuración]
¿Cómo se te ocurrió este nombre ''com.oracle''? ¿Es eso un estándar? No Esta es la estructura de la carpeta que creé en el servidor. Mire esta publicación SO aquí. Error Xmlparserv2 mientras la aplicación se implementó en jboss. Instalación del módulo Oracle ojdbc en la aplicación web JBoss para Java . Cómo crear un módulo Oracle en JBOSS.
También tenga en cuenta que no debe confundir este con la dependencia que podría agregar en su proyecto pom.xml
. es decir: este
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.4</version>
<scope>provided</scope> <!-- to exclude from WEB-INF/lib -->
</dependency>
La dependencia del proyecto anterior es necesaria para que pueda escribir el código Java, compilarlo, y también durante el tiempo de ejecución, para que su código se comunique con el controlador.
- ¿Por qué se necesita esto?
<module name="org.jboss.ironjacamar.jdbcadapters" slot="main" />
?
De lo contrario, es posible que obtenga un error al obtener un conjunto de datos jndi en JBoss en la aplicación Spring. Entonces eso es una dependencia. No olvides agregar el jar también en tu pom.xml
<dependency>
<groupId>org.jboss.ironjacamar</groupId>
<artifactId>ironjacamar-jdbc</artifactId>
</dependency>