2013-12-07 25 views
5

Mam aplikację sieci web maven, w którym używam logback i JBoss EAP 6.1 jako serwer. Problem polega na tym, że gdy wdrażam go na serwerze, mój plik logback.xml jest ignorowany i używana jest domyślna konfiguracja logback, która drukuje na konsoli zamiast w moim pliku dziennika. Logowanie działa dobrze, jeśli wdrażam moją aplikację na tomcat.Logback nie działa z JBoss EAP 6.1

Umieściłem plik logback.xml w katalogu src/main/resources.

Znaleziony na podobne pytanie - Logging Configuration in Logback + SL4J + JBoss EAP 6.0 i Logback and Jboss 7 - don't work together? ale bez użycia ...

+0

Nie będę bro pracy, starałem się tu na około 2 tygodnie, nic nie robię prace –

+0

Hej Abdul..Find moje rozwiązanie poniżej. –

Odpowiedz

5

Zapomniałeś dzielić rozwiązanie earlier..here jest -

Musimy dodać następujące linie w jboss- rozmieszczenie-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> 

Więc cały plik wygląda -

<?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> 

Jeśli masz projekt maven, można umieścić ten plik w -

<project>/webapp/META-INF/jboss-deployment-structure.xml 

Teraz zalogowaniu będzie działać dobrze.

+0

Próbuję użyć jboss-deployment-structure.xml, ale to też nie działa ... pozwól mi wypróbować podaną i zobacz, co się stanie. Zaktualizuję ci wyniki –

+0

nope ... nadal nie działa dla mnie, dziękuję za odpowiedź chociaż –

+1

Możesz spróbować wyłączyć więcej modułów związanych z logowaniem z jboss .. –

2

Po pierwsze, dzięki @popeye

Wspinaczka na co @popeye ma dobrze zdefiniowany, oto moje 2 centy

Położenie '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> 

Teraz, logback.xml jest w akcji. Siema!

  • dlaczego jest to potrzebne - <module name="com.oracle" />?

Jest to nazwa modułu sterownika wspomniałeś w 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> 

pamiętać, że jest na serwerze JBOSS do komunikacji danych. [Nawet jeśli masz ojdbc6-11.2.0.4.jar w swoim projektu/lib trzeba tę konfigurację]

Jak wpadłeś z tą nazwą „com.oracle”? Czy to standard? nr. To struture folderu utworzonego na serwerze Spójrz na to tak pisać tutaj - Xmlparserv2 error while application deployed in jboss, Installing Oracle ojdbc module in JBoss for Java web application„Jak utworzyć moduł Oracle w JBoss”

Należy również pamiętać, aby nie pomylić tego jednego z uzależnieniem, które można dodać w Twój projekt pom.xml. tj: ten

<dependency> 
       <groupId>com.oracle</groupId> 
       <artifactId>ojdbc6</artifactId> 
       <version>11.2.0.4</version> 
       <scope>provided</scope> <!-- to exclude from WEB-INF/lib --> 
      </dependency> 

jest potrzebne Powyższa zależność projekt, aby napisać kod Java, Pobierz skompilowane, a także podczas wykonywania, za kod do komunikowania się z kierowcą.

  • Dlaczego jest to potrzebne - <module name="org.jboss.ironjacamar.jdbcadapters" slot="main" />?

przeciwnym razie można dostać błąddostać JNDI źródła danych ustawiony na JBoss w aplikacji Wiosny. To jest zależność. Nie zapomnij dodać słoik jak również w pom.xml

<dependency> 
      <groupId>org.jboss.ironjacamar</groupId> 
      <artifactId>ironjacamar-jdbc</artifactId> 
</dependency> 
Powiązane problemy