java.lang.NoClassDefFoundError: org/apache/log4j/Level - slf4j?

10,954

Solution 1

The answer is: I am deploying to the Adminserver, but I have to deploy my application to a clustor, because the ClassPath and the Arguments setting in the ServerStart will not work only on Adminserver, it will only on others.

Solution 2

Generally, because this is maven releated question then attach your pom.xml (or part of it). This is better than attaching screenshots :)

Your log4j dependency has scope provided, this mean than log4j is already on your server and SHOULD NOT be installed with application.

Share:
10,954

Related videos on Youtube

victorio
Author by

victorio

Updated on June 04, 2022

Comments

  • victorio
    victorio almost 2 years

    I am trying to deploy my application, but it gives me an error: Failed to instantiate SLF4J LoggerFactory Reported exception:

    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)
    

    I have the jar-s in the Maven Dependences:

    maven dependences

    The classpath for the log4j jar in weblogic:

    log4j.xml

    The log4j.xml (from 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>
    

    What do I wrong? I can't imagine... Please help me! Thanks!

    • Dave Newton
      Dave Newton over 10 years
      Are you sure it's actually provided?