1

このスレッドは、WAR (JSF 2) プロジェクトで私の問題を解決しますが、プロジェクトが EAR の場合、このソリューションは機能しません。

Logback と Jboss 7 - 一緒に動作しませんか?

JBOSS 7.1 を使用しています。

アップデート:

Eclipse (JBoss Tools および JBOSS 7.1 ランタイム) で新しい JSF プロジェクトを作成します。jar slf4j-api-1.7.5.jar、logback-core-1.0.13.jar、logback-classic-1.0.13.jar、および logback-access-1.0.13.jar を追加します。

Bean のこのコード:

@Named
public class BeanTeste {

private Logger log = LoggerFactory.getLogger(BeanTeste.class);

public void executar(){
log.debug("TESTE DE DEBUG");
log.info("TESTE DE INFO");
log.warn("TESTE DE WARN");

// print internal state
   LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
   StatusPrinter.print(lc);

System.out.println("METODO COMPLETADO!");
}

返す必要があります:

18:00:09,278 INFO  [stdout] (http--0.0.0.0-8080-1) 18:00:09.274 [http--0.0.0.0-8080-1] DEBUG com.br.teste.BeanTeste - TESTE DE DEBUG

18:00:09,280 INFO  [stdout] (http--0.0.0.0-8080-1) 18:00:09.279 [http--0.0.0.0-8080-1] INFO  com.br.teste.BeanTeste - TESTE DE INFO

18:00:09,282 INFO  [stdout] (http--0.0.0.0-8080-1) 18:00:09.282 [http--0.0.0.0-8080-1] WARN  com.br.teste.BeanTeste - TESTE DE WARN

18:00:09,284 INFO  [stdout] (http--0.0.0.0-8080-1) 18:00:09,223 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]

18:00:09,286 INFO  [stdout] (http--0.0.0.0-8080-1) 18:00:09,224 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]

18:00:09,288 INFO  [stdout] (http--0.0.0.0-8080-1) 18:00:09,224 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.xml]

18:00:09,291 INFO  [stdout] (http--0.0.0.0-8080-1) 18:00:09,225 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Setting up default configuration.

18:00:09,293 INFO  [stdout] (http--0.0.0.0-8080-1) 

18:00:09,293 INFO  [stdout] (http--0.0.0.0-8080-1) METODO COMPLETADO!

しかし戻る

Exception starting filter WicketFilter: java.lang.ClassCastException: ch.qos.logback.classic.LoggerContext cannot be cast to ch.qos.logback.classic.LoggerContext

WAR プロジェクトで jboss-deployment-structure.xml ファイルを作成し、それを WEB-INF ディレクトリに配置して問題を解決しました。

<jboss-deployment-structure>
    <deployment>
        <!-- Exclusions allow you to prevent the server from automatically adding some dependencies     -->
        <exclusions>
            <module name="org.slf4j" />
            <module name="org.slf4j.impl" />
        </exclusions>
    </deployment>
</jboss-deployment-structure>

WAR プロジェクトに EAR プロジェクトを追加すると、問題が再発します。

何か案は?

4

1 に答える 1

0

以下の内容で jboss-deployment-structure.xml を変更したところ、うまくいきました。

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<ear-subdeployments-isolated>true</ear-subdeployments-isolated>
<deployment>
    <exclusions>
        <module name="org.apache.log4j" />
        <module name="org.slf4j" />
        <module name="org.slf4j.ext" />
        <module name="org.slf4j.impl" />
        <module name="org.slf4j.jcl-over-slf4j" />
        <module name="org.apache.commons.logging" />
        <module name="org.jboss.logging"/>
        <module name="org.jboss.logging.jul-to-slf4j-stub"/>
        <module name="org.jboss.logmanager"/>
        <module name="org.jboss.log4j.logmanager"/>
        <module name="org.apache.log4j"/>
        <module name="org.log4j"/>  
    </exclusions>
    <dependencies>
    </dependencies>
</deployment>
<sub-deployment name="Teste.war">
    <exclusions>
        <module name="org.apache.log4j" />
        <module name="org.slf4j" />
        <module name="org.slf4j.ext" />
        <module name="org.slf4j.impl" />
        <module name="org.slf4j.jcl-over-slf4j" />
        <module name="org.apache.commons.logging" />
        <module name="org.jboss.logging"/>
        <module name="org.jboss.logging.jul-to-slf4j-stub"/>
        <module name="org.jboss.logmanager"/>
        <module name="org.jboss.log4j.logmanager"/>
        <module name="org.apache.log4j"/>
        <module name="org.log4j"/>  
    </exclusions>
</sub-deployment>
<sub-deployment name="TesteEJB.jar">
    <exclusions>
        <module name="org.apache.log4j" />
        <module name="org.slf4j" />
        <module name="org.slf4j.ext" />
        <module name="org.slf4j.impl" />
        <module name="org.slf4j.jcl-over-slf4j" />
        <module name="org.apache.commons.logging" />
        <module name="org.jboss.logging"/>
        <module name="org.jboss.logging.jul-to-slf4j-stub"/>
        <module name="org.jboss.logmanager"/>
        <module name="org.jboss.log4j.logmanager"/>
        <module name="org.apache.log4j"/>
        <module name="org.log4j"/>  
    </exclusions>
</sub-deployment>

どうもありがとう!!!!

于 2013-10-01T15:02:27.403 に答える