MyBatis3错误:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Priority的问题解决
2024-08-30 23:59:56
在使用Maven新建QuitStart类型项目时,引入了MyBatis3.2.0版本的JAR包之后,出现如下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Priority
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.apache.ibatis.io.ClassLoaderWrapper.classForName(ClassLoaderWrapper.java:176)
at org.apache.ibatis.io.ClassLoaderWrapper.classForName(ClassLoaderWrapper.java:87)
at org.apache.ibatis.io.Resources.classForName(Resources.java:254)
at org.apache.ibatis.type.TypeAliasRegistry.registerAlias(TypeAliasRegistry.java:153)
at org.apache.ibatis.session.Configuration.<init>(Configuration.java:173)
at org.apache.ibatis.builder.xml.XMLConfigBuilder.<init>(XMLConfigBuilder.java:76)
at org.apache.ibatis.builder.xml.XMLConfigBuilder.<init>(XMLConfigBuilder.java:60)
at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:48)
at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:35)
at com.jsoft.testmybatis.test1.App.<clinit>(App.java:20)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Priority
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 12 more
这个错误的意思是没有引入log4j的JAR包,解决方法是加入log4j的JAR包依赖,POM配置如下:
<!-- log4j -->
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
加入之后,再配置log4j的配置文件,这里命名为:log4j.properties,放在resources文件夹下,配置如下:
log4j.rootLogger=DEBUG,Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.logger.org.apache=INFO
#ex:http://www.cnblogs.com/zhaozihan/p/6371133.html
只要配置好之后再次运行就不会报如上的错误。
但是,思考一下,为什么一定要引入log4j,而且log4j的版本停留在了1.x的版本,如果项目上使用的是2.x版本的,那么这就是一个问题,难道要引入两个去解决这个问题?
尝试以下解决方法:
1、尝试升级MyBatis的版本为3.4.4,不引入log4j。测试之后一切正常,所以此方法是行得通的。
2、升级了3.4.4版本之后,可以通过setting节点指定使用哪个日志组件,这样也能完美解决框架上使用不同版本的日志组件导致的问题。配置参考:http://www.mybatis.org/mybatis-3/zh/configuration.html#settings
最新文章
- iOS 因为reason: &#39;Pushing the same view controller instance more than once is not supported而奔溃(下)
- 没有body怎么添加onload事件
- IEE数据库kill指定条件的进程
- css读书笔记4:字体和文本
- 1. SQL Server服务器监控实现方法
- 求职基础复习之快速排序c++版
- java.util.Map.Entry接口
- JS 网页打印解决方案
- 常见问题(FAQ) | VPNCUP
- 探秘IntelliJ IDEA 13中的版本控制——Subversion 1.8
- FileTable初体验
- php中empty和isset的区别
- java web 整合开发王者归来学习总结
- ESlint
- easyUI提交不跳转
- Integer判断大于 == 127时的坑
- 【转】- 从FM推演各深度CTR预估模型(附代码)
- git-两小时简单使用教程
- DEM数据及其他数据下载
- oracle11g的安装
热门文章
- Android 性能优化(14)网络优化( 10)Determining and Monitoring the Connectivity Status
- A8ERP配送管理系统
- linux mint 18.3设置分辨率死机问题的解决方法
- <;mybatis:scan>;与<;MapperScannerConfigurer/>;
- bower——基本使用
- TI 77GHZ雷达开发套件 RDP-DC100
- Layui数据表单的编辑
- 梦想CAD控件网页版线型
- S-HR之代码创建临时表并插入数据
- 题解 洛谷P3203/BZOJ2002【[HNOI2010]弹飞绵羊】