2013-09-27 5 views
1

Эта тема решает мою проблему в проекте WAR (JSF 2), но когда проект EAR, это решение не работает.Проблемы с logback

Logback and Jboss 7 - don't work together?

Я использую JBoss 7.1.

UPDATE:

создать новый JSF проект в затмении (JBoss Tools и JBOSS 7.1 во время выполнения). Добавьте 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.

этот код в боб:

@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-развертывания-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, проблема возвращается.

любые идеи?

+0

Почему это решение не подходит для вас? Что происходит? – Math

+0

, когда проект прост WAR, поместите файл jboss-deployment-structure.xml в каталог WEB-INF, разрешите ошибку: Исходный стартовый фильтр WicketFilter: java.lang.ClassCastException: ch.qos.logback.classic.LoggerContext не может быть запущен к ch.qos.logback.classic.LoggerContext. Но когда проект WAR - проект EAR, эта ошибка сохраняется –

+0

Было бы здорово, если бы вы могли добавить эти сведения в свой вопрос. Без какого-либо форматирования трудно понять. Этот акт может побуждать людей читать ваш вопрос и отвечать на него. Было бы даже лучше, если бы вы опубликовали фрагмент кода, который, по вашему мнению, нуждается в настройках. – Math

ответ

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> 

Большое спасибо !!!!