java.lang.NoClassDefFoundError: Could not initialize class com解决方案
编写的时候遇到这样一个bug, java.lang.NoClassDefFoundError: Could not initialize class com
纠结了两天多,但是,没有找到答案,这个问题的多方提示就是
(1)缺JAR包 (2)JAR包冲突 (3)TOMCAT或Eclipse全路径中有空格
这些答案都没有解决我的问题,这个错误提示是说我的那个包没法启动,很多显示都是是什么静态定义必须trycatch,但是我的这个自己简历的公共类,这些都写了.
- public class MybatisUtil {
- private static ThreadLocal<SqlSession> threadLocal = new ThreadLocal<SqlSession>();
- private static SqlSessionFactory sqlSessionFactory;
- /**
- * 加载位于src/mybatis.xml配置文件
- */
- static {
- try {
- Reader reader = Resources.getResourceAsReader("mybatis.xml");
- sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
- } catch (IOException e) {
- e.printStackTrace();
- throw new RuntimeException(e);
- }
- }
- /**
- * 禁止外界通过new方法创建
- */
- private MybatisUtil() {
- }
- /**
- * 获取SqlSession
- */
- public static SqlSession getSqlSession() {
- //从当前线程中获取SqlSession对象
- SqlSession sqlSession = threadLocal.get();
- //如果SqlSession对象为空
- if (sqlSession == null) {
- //在SqlSessionFactory非空的情况下,获取SqlSession对象
- sqlSession = sqlSessionFactory.openSession();
- //将SqlSession对象与当前线程绑定在一起
- threadLocal.set(sqlSession);
- }
- //返回SqlSession对象
- return sqlSession;
- }
- /**
- * 关闭SqlSession与当前线程分开
- */
- public static void closeSqlSession() {
- //从当前线程中获取SqlSession对象
- SqlSession sqlSession = threadLocal.get();
- //如果SqlSession对象非空
- if (sqlSession != null) {
- //关闭SqlSession对象
- sqlSession.close();
- //分开当前线程与SqlSession对象的关系,目的是让GC尽早回收
- threadLocal.remove();
- }
- }
- }
然后,我进行了另一个测试,连接测试
- public class TestConnection {
- @Test
- public void testConnection() throws Exception {
- Connection connection = MybatisUtil.getSqlSession().getConnection();
- System.out.println(connection!=null?"连接成功":"连接失败");
- }
- }
发现是配置文件的错误,修改配置文件,连接就成功了,其他的就正确了
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-config.dtd">
- <configuration>
- <properties resource="jdbc.properties"/>
- <!-- 别名标签 -->
- <typeAliases>
- <typeAlias type="com.liuya.demo.mybatis.dysnamic.pojo.NewsLabel"
- alias="NewsLabel"/>
- </typeAliases>
- <!-- 配置运行的数据库环境 -->
- <environments default="mysqlenvironment">
- <environment id="mysqlenvironment">
- <!-- 連接池在本地连接中使用,在SSM中不用,用C3P0和DBCP -->
- <transactionManager type="JDBC"/>
- <dataSource type="POOLED">
- <property name="driver" value="${driver}"/>
- <property name="url" value="${url}"/>
- <property name="username" value="${username}"/>
- <property name="password" value="${password}"/>
- </dataSource>
- </environment>
- </environments>
- <!-- 连接映射文件 -->
- <mappers>
- <!-- 最终使用的都是package -->
- <mapper resource="com\liuya\demo\mybatis\dysnamic\mapper\NewsLabelMapper.xml"/>
- </mappers>
- </configuration>
所以要好好的理解Mybatis的框架和配置标签的使用,这是好使版本的配置
java.lang.NoClassDefFoundError: Could not initialize class com解决方案的更多相关文章
- Java 上传文件到 SFTP 抛异常 java.lang.NoClassDefFoundError: Could not initialize class sun.security.ec.SunEC 的解决办法
最近从 Op 那里报来一个问题,说是SFTP上传文件不成功.拿到的 Exception 如下: Caused by: java.lang.NoClassDefFoundError: Could not ...
- 异常:Caused by: java.lang.NoClassDefFoundError: Could not initialize class net.sf.log4jdbc.Properties
参考文章: 使用Log4jdbc-log4j2监听MyBatis中运行的SQL和Connection 使用 log4jdbc格式化输出SQL,maven配置如下: <dependency> ...
- java.lang.NoClassDefFoundError: Could not initialize class net.sf.json.util.JSONUtils
页面报错: root: java.lang.NoClassDefFoundError: Could not initialize class net.sf.json.util.JSONUtils 出错 ...
- 异常-----java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.core.KeyFactory
SSH 类库问题 java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.Enhancer2009- ...
- hibernate 解决 java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.validator.internal.engine.xxx 这类的问题
<!-- 解决 java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.validator.intern ...
- java.lang.NoClassDefFoundError: Could not initialize class xxx 原因
一.问题及原因 程序里有个工具类,主要是调用它的静态方法来发送mq. 调用场景如下: 结果这两天报了个错: java.lang.NoClassDefFoundError: Could not init ...
- java.lang.NoClassDefFoundError: Could not initialize class org.jfree.chart.JFreeChart
最近在进行利用jfreechart生成图表时发现,项目在本地运行的好好的,一部署到服务器(linux系统)上就不行,报这样的错误: java.lang.NoClassDefFoundError: Co ...
- exception java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment
exception java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironmen ...
- 日志异常:java.lang.NoClassDefFoundError: Could not initialize class org.slf4j.impl.StaticLoggerBinder
今天启动开发的项目,碰到了一个日志上的bug:java.lang.NoClassDefFoundError: Could not initialize class org.slf4j.impl.Sta ...
随机推荐
- ROS HTB限速失败原因分析和需注意事项
要想做限速,必须要知道以下几点: 首先要知道自己要限制什么的速度,谁的速度,于是需要用的标记,即Mangle. 其次要知道怎么限速,是限制上传,还是下载? 最后要知道所做的限速是否成功,即需要知道如何 ...
- mysql 优化 (1)
提高IOPS能力的几种方法换SSD,PCIE-SSD(提高IO效率,普通SAS盘5000以内的iops,而新设备可达到数万或者数十万iops)少做IO的活(合并多次读写为一次,或者前端加内存CACHE ...
- 斗地主AI
斗地主AI设计 一.牌型 1 火箭:大小王在一起的牌型,即双王牌,此牌型最大,什么牌型都可以打. 2 炸弹:相同点数的四张牌在一起的牌型,比如四条A.除火箭外,它可以打 ...
- git 怎么上传文件到github上
1.安装git sudo apt-get install git 2.配置全局变量 git config --global user.name langhunm git co ...
- HDU1257题解
解题思路:这题的本质就是:求一个给定的数字序列中,非递增(或非递减)子序列的最少的条数. 思维误区:本题很容易被样例坑,以为是直接求跳跃点(i < j && ai < aj ...
- 【洛谷】P1064 金明的预算方案(dp)
题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”.今 ...
- 匿名方法,lambad表达式,匿名类
其实lambad表达式就是“函数”或者说是“方法”写法的一个进化,越来越简化而已,如数学方法里的f(X). 匿名方法:顾名思义,匿名方法就是没有名称的方法,但是有定义参数. 匿名方法最明显的好处就是可 ...
- 一些Java相关的
都是从<Thinking in Java>英文第四版中摘抄的 _______________________________________________________________ ...
- 在VritualBox中安装CentOS7
系统:Windows10 位 详细步骤参考: Windows平台上通过VirtualBox安装centos虚拟机 安装virtual box 出现2503错误解决:c:/windows/temp 添加 ...
- dubbo 梗概及使用示例
阿里巴巴dubbo主页:http://code.alibabatech.com/wiki/display/dubbo/Home-zh 1. Dubbo是什么? Dubbo是一个分布式服务框架,致力于提 ...