当前位置: 首页 > 知识库问答 >
问题:

JAVAlang.NoClassDefFoundError:org/apache/log4j/Level-slf4j?

奚才良
2023-03-14

我正在尝试部署我的应用程序,但它给了我一个错误:未能实例化SLF4J LoggerFactory报告的异常:

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)

我在Maven依赖区有罐子:

weblogic中log4j jar的类路径:

log4j。xml(来自类路径):

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

我错了什么?我无法想象。。。请帮帮我!谢谢

共有2个答案

陶博涉
2023-03-14

答案是:我正在部署到Adminserver,但我必须将我的应用程序部署到clustor,因为ServerStart中的类路径和参数设置不仅在Adminserver上有效,而且只在其他服务器上有效。

谢正初
2023-03-14

一般来说,因为这是maven释放的问题,然后附上你的pom.xml(或一部分)。这比附加截图更好:)

您的log4j依赖项提供了作用域,这意味着log4j已经在您的服务器上,不应随应用程序一起安装。

 类似资料:
  • 我下面的自定义日志工具来实现日志功能的电子邮件使用log4j。 我已经将log4j:1.2.17的依赖项以及jar添加到类路径中。我正在尝试使用arquillian进行测试。但每次我都会犯同样的错误。 我知道它即将出现,因为我使用的是级别而不是优先级,而优先级现在已被弃用。我已经添加了正确的jar和导入,但是当我运行测试时仍然会出现错误。 我也提到了这些链接,但对我来说没有任何效果。 是什么导致了

  • 我想在Elasticsearch中执行单元测试,因为我正在使用

  • 我正在构建一个web应用程序,并使用ApachePOI处理excel工作表。当我启动服务器时,出现以下异常。问题是,在我尝试构建它并部署到heroku之前,它一直工作得很好(但可能与此无关)。有人有主意吗?? 我的pom。xml文件: 还有我的web.xml

  • 我正在开发maven jersey rest api,并使用hbase和hadoop。下面是我的pom。xml文件。 我的m2存储库不包括org/apache/hadoop下的跟踪文件夹。我再次删除了它更新了maven,但仍然没有运气。

  • 我是Spring的新手。我用的是BasicDataSource 我使用了hibernate-commons-annotations-3.0.0。ga.jar,commons-pool2-2.0。jar,commons-dbcp2-2.1。jar,mysql-connector-java-5.1.4。jar,hibernate-core-3.6.9。最终的罐子 我得到了这个错误:

  • 我正在使用ApachePOI读取一些Excel文件。我创建了一个控制台应用程序来完成这项工作,之后我尝试将代码集成到SpringMVCwebapp中(我知道没什么特别的)。我已将相同的Jar文件包含到我的类路径中,但每当我尝试运行代码时,都会出现以下错误: 我相信类Font是在编译时找到的,但不是在运行时。我很确定问题不在于ClassPath,但是我不知道如何解决这个问题。 编辑:当我用main方