相关文章推荐
个性的骆驼  ·  Flutter ...·  1 周前    · 
曾经爱过的南瓜  ·  idea ...·  1 年前    · 
追风的手链  ·  perl useless use of a ...·  1 年前    · 
知识渊博的硬币  ·  postgresql ...·  1 年前    · 

1.在对日志依赖 log4j 升级为2.15.0版本后启动项目出现了如下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/logging/log4j/util/ReflectionUtil
	at org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:42)
	at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:48)
	at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29)
	at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:277)
	at org.apache.commons.logging.LogAdapter$Slf4jAdapter.createLocationAwareLog(LogAdapter.java:130)
	at org.apache.commons.logging.LogAdapter.createLog(LogAdapter.java:91)
	at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:67)
	at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:59)
	at org.springframework.boot.SpringApplication.<clinit>(SpringApplication.java:196)
	at com.tjgeo.tpp.JjRunApplication.main(JjRunApplication.java:33)
Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.util.ReflectionUtil
	at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:351)

解决方法:

1.先在项目启动模块pom文件中添加:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>

2.接着将以下几个依赖也升级到新版本

			<dependency>
				<groupId>org.apache.logging.log4j</groupId>
				<artifactId>log4j-api</artifactId>
				<version>2.15.0</version>
			</dependency>
			<dependency>
				<groupId>org.apache.logging.log4j</groupId>
				<artifactId>log4j-core</artifactId>
				<version>2.15.0</version>
			</dependency>
			<dependency>
				<groupId>org.apache.logging.log4j</groupId>
				<artifactId>log4j-slf4j-impl</artifactId>
				<version>2.15.0</version>
			</dependency>

3.然后就可以正常启动项目了。

1.如果运行程序出现错误:“Exception in thread “main” java . lan g.No Class DefFoundError: org /slf4j/LoggerFactory”,这是因为项目缺少slf4j-api.jar和slf4j- log4j 12.jar这两个jar包导致的错误。2.如果运行程序出现错误:“ java . lan g.No Class DefFoundError: org /a Apache Commons Logging 使用教程 commons- logging Apache Commons Logging 项目地址:https://gitcode.com/gh_mirrors/co/commons- logging 项目介绍 Apache Commons Logging (简称JCL)是一个轻量级的 日志 适配器,允许在运行时配置与其他知名 日志 系统的桥接。JCL提供了一个统一的... Caused by: java . lan g. Class NotFoundException: org . apache . logging . log4j . util . Reflection Util 解决 方法 Exception in thread "main" java . lan g.No Class DefFoundError: org / apache / logging / log4j / util / Reflection Util 报错 解决 ,替换pom文件内的 log4j 依赖 上述是由于找不到 org / apache / logging / log4j / util / Reflection Util 类造成,然后发现,这个类所在的包是新引入的,而这个包是在新加入 依赖 后,间接被引入的,因此在新引入的包中,将其排除即可。定位到 Log4j LoggerFactory. java :42,发现确实是加载不到这个类造成的。接下来就要 解决 ,为什么加载不到这个类的 问题 。其他可能原因:版本 问题 导致,如。 在使用Maven新建QuitStart类型项目时,引入了MyBatis3.2.0版本的JAR包之后,出现如下错误: Exception in thread "main" java . lan g.No Class DefFoundError: org / apache / log4j /Priority at java . lan g. Class .forName0(Native Method) 日志 是记录系统或应用程序在运行过程中所发生事件或行为的详细信息的文件。它通常包括时间戳、事件类型、事件描述等信息,以便在需要时进行故障排查、性能优化、安全审计等工作。 日志 可以帮助开发人员和系统管理员诊断应用程序 问题 ,了解系统运行情况,以及存档和监控事件。在 java 中一般都是使用 log4j 2的 日志 框架根节点,其中可定义appenders节点和loggers节点,属性包含以下内容:status:可以用来指定 Log4j 2本身打印 日志 的级别:用来设置配置文件的动态加载时间,单位是秒,最小是5秒。 定位下 Loader Util 发现 log4j 版本不一致, log4j -core-2.17.2在调用 log4j -api-2.20.0导致的,找一下作恶源,是 org .elasticsearch7.17.10,用不到 log4j 的话直接排除掉。 Exception in thread "main" java . lan g.No Class DefFoundError: org / apache / logging / log4j / util / Reflection Util ...... Caused by: java . lan g. Class NotFoundException: org . apache . logging . log4j . util .Reflec... 文章目录添加es的jar包No Class DefFoundError: org / apache / logging / log4j / util / Reflection Util 解决 办法       在用maven进行spark开发时,如果使用离线批处理,一般都有添加spark-core的jar包。 <dependency> <groupId> org . apache .spark</groupId> <artifactId