Jsf logback的问题

Jsf logback的问题,jsf,jboss7.x,logback,ear,Jsf,Jboss7.x,Logback,Ear,这个线程解决了我在WARJSF2项目中的问题,但是当项目被EAR启动时,这个解决方案就不起作用了 我正在使用JBoss7.1 更新: 我在EclipseJBossTools和JBoss7.1运行时中创建了一个新的JSF项目。添加jars 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 Be

这个线程解决了我在WARJSF2项目中的问题,但是当项目被EAR启动时,这个解决方案就不起作用了

我正在使用JBoss7.1

更新:

我在EclipseJBossTools和JBoss7.1运行时中创建了一个新的JSF项目。添加jars 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项目是addear项目时,问题又出现了


有什么想法吗?

我用下面的内容更改了我的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>

非常感谢

为什么这个解决方案不适合您?发生了什么?当项目是简单WAR时,将文件jboss-deployment-structure.xml放在WEB-INF目录中解决错误:异常启动筛选器WicketFilter:java.lang.ClassCastException:ch.qos.logback.classic.LoggerContext无法强制转换为ch.qos.logback.classic.LoggerContext。但是,当WAR项目是EAR项目时,如果您能在问题中添加这些信息,那就太好了。没有任何格式是很难理解的。这一行为可能会鼓励人们阅读你的问题和答案。如果您发布您认为需要调整的代码片段,那就更好了。不同的类加载器已经加载了重复的logback jar。删除重复项以解决问题。我搜索了一些,但没有找到重复的jar。可能是JBOSS加载的。在这种情况下,如何找到答案?