java.lang.NoClassDefFoundError: org/apache/log4j/Level - slf4j?
Ich versuche für die Bereitstellung der Anwendung, aber es gibt mir eine Fehlermeldung:
Fehler beim instanziieren SLF4J LoggerFactory
Gemeldete Ausnahme:
java.lang.NoClassDefFoundError: org/apache/log4j/Level
at org.slf4j.impl.StaticLoggerBinder.<init>(StaticLoggerBinder.java:75)
at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:45)
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:128)
at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:107)
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:295)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:269)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:281)
at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:197)
at org.hibernate.ejb.Ejb3Configuration.<clinit>(Ejb3Configuration.java:133)
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:72)
at weblogic.persistence.BasePersistenceUnitInfo.initializeEntityManagerFactory(BasePersistenceUnitInfo.java:452)
at weblogic.persistence.BasePersistenceUnitInfo.initializeEntityManagerFactory(BasePersistenceUnitInfo.java:445)
at weblogic.persistence.BasePersistenceUnitInfo.init(BasePersistenceUnitInfo.java:119)
at weblogic.persistence.BaseJPAIntegrationProvider.createPersistenceUnitInfo(BaseJPAIntegrationProvider.java:53)
at weblogic.persistence.AbstractPersistenceUnitRegistry.storeDescriptors(AbstractPersistenceUnitRegistry.java:420)
at weblogic.persistence.AbstractPersistenceUnitRegistry.loadPersistenceDescriptor(AbstractPersistenceUnitRegistry.java:339)
at weblogic.persistence.ModulePersistenceUnitRegistry.<init>(ModulePersistenceUnitRegistry.java:67)
at weblogic.ejb.container.deployer.EJBModule.setupPersistenceUnitRegistry(EJBModule.java:190)
at weblogic.ejb.container.deployer.EJBModule$1.execute(EJBModule.java:297)
at weblogic.persistence.PersistenceUnitRegistryInitializer.setupPersistenceUnitRegistries(PersistenceUnitRegistryInitializer.java:62)
at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:394)
at weblogic.application.internal.ExtensibleModuleWrapper$PrepareStateChange.next(ExtensibleModuleWrapper.java:295)
at weblogic.application.internal.ExtensibleModuleWrapper$PrepareStateChange.next(ExtensibleModuleWrapper.java:285)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42)
at weblogic.application.internal.ExtensibleModuleWrapper.prepare(ExtensibleModuleWrapper.java:109)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:100)
at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:172)
at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:167)
at weblogic.application.utils.StateMachineDriver$ParallelChange.run(StateMachineDriver.java:80)
at weblogic.work.ContextWrap.run(ContextWrap.java:40)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:550)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:295)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:254)
Habe ich die jar-s in der Maven-Abhängigkeiten:
Den Klassenpfad für die log4j jar in weblogic:
Den log4j.xml (aus classpath):
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="LOGFILE" class="org.apache.log4j.FileAppender">
<param name="File" value="C:\\Work\\KEPLER\\KH_RRM\\log/rrm-web.log" />
<param name="Append" value="false" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p [%c{1}] %m%n"/>
</layout>
</appender>
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value=" %d{yyyy-MM-dd HH:mm:ss} [%t] %-5p [%c{1}] %m%n"/>
</layout>
</appender>
<root>
<priority value ="ALL" />
<appender-ref ref="STDOUT" />
<appender-ref ref="LOGFILE" />
</root>
</log4j:configuration>
Was mache ich falsch? Ich kann mir nicht vorstellen... Bitte helft mir! Danke!
- Sind Sie sicher, es ist eigentlich vorgesehen?
- Vielleicht brauchen Sie, um einen Blick in Sie server-repo, wenn diese jar-Datei bereitgestellt wird, bevor Sie bereitstellen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der Regel, weil das ist maven-bezogenen Frage dann schließen Sie Ihre pom.xml (oder ein Teil davon). Das ist besser als das Anhängen von screenshots 🙂
Ihre log4j dependency hat Spielraum zur Verfügung gestellt, die diese bedeuten, als log4j ist bereits auf dem server und SOLLTE NICHT installiert werden, die mit der Anwendung.
Die Antwort ist: ich bin der Bereitstellung auf dem Adminserver, aber ich habe für die Bereitstellung der Anwendung auf einem clustor, weil der ClassPath und die Argumente, die Einstellung in der ServerStart wird nicht funktionieren, nur auf dem Adminserver, es wird nur auf andere.