zoukankan      html  css  js  c++  java
  • MyBatis3错误:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Priority的问题解决

    在使用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

  • 相关阅读:
    leetcode33. Search in Rotated Sorted Array
    pycharm 设置sublime text3 monokai主题
    django class Meta
    leetcode30, Substring With Concatenation Of All Words
    Sublime text3修改tab键为缩进为四个空格,
    sublime text3 python打开图像的问题
    安装上imesupport输入法依然不跟随的解决办法,
    sublime text3 的插件冲突弃用问题,
    sublime text3 BracketHighlighter括号匹配的设置
    windows 下wget的使用
  • 原文地址:https://www.cnblogs.com/EasonJim/p/7050312.html
Copyright © 2011-2022 走看看