java.lang.NoClassDefFoundError: Could not initialize class com解决方案

2023-10-31

本文转载自: https://www.cnblogs.com/liuyangfirst/p/6811937.html 作者:liuyangfirst 转载请注明该声明。

编写的时候遇到这样一个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?"连接成功":"连接失败");
    }
}

发现是配置文件的错误,修改配置文件,连接就成功了,其他的就正确了

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 3         "http://mybatis.org/dtd/mybatis-3-config.dtd">
 4 <configuration>
 5 
 6     <properties resource="jdbc.properties"/>
 7 
 8     <!-- 别名标签 -->
 9     <typeAliases>
10         <typeAlias type="com.liuya.demo.mybatis.dysnamic.pojo.NewsLabel"
11                    alias="NewsLabel"/>
12     </typeAliases>
13 
14     <!-- 配置运行的数据库环境 -->
15     <environments default="mysqlenvironment">
16         <environment id="mysqlenvironment">
17             <!-- 連接池在本地连接中使用,在SSM中不用,用C3P0和DBCP -->
18             <transactionManager type="JDBC"/>
19             <dataSource type="POOLED">
20                 <property name="driver" value="${driver}"/>
21                 <property name="url" value="${url}"/>
22                 <property name="username" value="${username}"/>
23                 <property name="password" value="${password}"/>
24             </dataSource>
25         </environment>
26     </environments>
27 
28     <!-- 连接映射文件 -->
29     <mappers>
30         <!-- 最终使用的都是package -->
31         <mapper resource="com\liuya\demo\mybatis\dysnamic\mapper\NewsLabelMapper.xml"/>
32     </mappers>
33 </configuration>
View Code

所以要好好的理解Mybatis的框架和配置标签的使用,这是好使版本的配置

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java.lang.NoClassDefFoundError: Could not initialize class com解决方案 的相关文章

  • 贝叶斯分类(这个讲的比较清晰,一看就明白)

    原文地址 http www cnblogs com leoo2sk archive 2010 09 17 naive bayesian classifier html 1 2 分类问题综述 对于分类问题 其实谁都不会陌生 说我们每个人每天都
  • HDF5库的下载

    HDF5是科学计算中最常用的分层式数据存储格式 大部分计算软件都需要它的支持 然而 最近在下载HDF5库的时候 我突然发现 官方的下载链接竟然都指向了AWS 在国庆大背景下我的梯子被战略性封闭 于是全部404 不过这样就难住我了嘛 不可能的
  • oracle导出表结构的几种办法,oracle表结构和数据导出时的一些勾选项说明

    使用pl sql developer导出oracle数据库的表结构和表数据时 有一些勾选项供用户选择 需要用户根据实际情况进行勾选或取消 导出方法如下 一 只导出表结构 1 使用pl sql developer登陆数据库 2 选择Tools
  • [Pytorch系列-70]:开发环境 - 可视化工具visdom安装与使用方法

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 122073099 目录 第1章 概述
  • IP地址和网络地址及广播地址解析

    IP地址 IP地址有IPV4和IPV6两种 IPV4 由32位二进制数组成 一般用点分十进制来表示 IPV6 由128位组成 一般用冒号分隔 十六进制来表示 IP地址由两部分组成 网络部分 NETWORK 主机部分 HOST 例 192 1
  • 基于iscroll实现下拉和上拉刷新

    基于iscroll实现下拉和上拉刷新 2015 02 07 javascript moblie 插件 iscroll上拉刷新 js上拉刷新 js下拉刷新 在原生APP的开发中 有一个常见的功能 就是下拉刷新的功能 这个想必大家都是知道的 但
  • Sqlite嵌入式内存数据库的优化

    0 场景及问题 目前网关项目在使用Sqlite的数据库存储数据 但是我们使用的方式和一般的数据库使用有区别 导致出现了两个问题 Sqlite3占用内存迅速增长 这种增长是cat proc fd号 statm 的显示增长 区别于 sqlite

随机推荐

  • Android OpenGL ES 2.0绘图:绘制纹理

    http mobile 51cto com aengine 437172 htm public class MyGLSurfaceView extends GLSurfaceView public MyGLSurfaceView Conte
  • PanGu-Coder2华为盘古大模型来了!

    视学算法报道 机器之心编辑部 这次 华为代码生成大模型盘古 Coder2 采用了一种类似于 RLHF 基于人类反馈的强化学习 的框架 相较前代实现了更高的一次生成通过率 随着大模型成为 AI 开发新范式 将大语言模型集成至编程领域 完成代码
  • xenserver VM假死

    使用XenServer作为虚拟化平台 经常会有用户反映虚拟机会假死 并亮起非正常的Yellow图标 a 虚拟机不可用 这种现象发生的非常随机 发生在不固定的主机 不固定的虚拟机上 b 使用XenCenter无法正常的将其ShutDown 包
  • static关键字的四种用法

    在java的关键字中 static和final是两个我们必须掌握的关键字 不同于其他关键字 他们都有多种用法 而且在一定环境下使用 可以提高程序的运行性能 优化程序的结构 下面我们先来了解一下static关键字及其用法 static关键字
  • vue+高德离线地图vue-amap开发

    前言 在使用多次高德离线地图的插件 vue amap 感觉收获还是很多的 这里来整理下相关资料 效果图 目录 实现步骤 源码在最下面 一 安装插件 二 template配置基础的地图组件 三 data里面定义相关数据 四 撒点的实现 1 t
  • 0.96寸OLED屏硬件驱动电路

    0 96寸OLED屏硬件驱动电路 该电路适合把OLED驱动电路集成到自己的板子上 最终的原理图和PCB已经上传CSDN 可直接点击链接下载 https download csdn net download qq 31785559 59594
  • cocos creator入门教程实现简化版贪吃蛇

    开发工具 Cocos Creator和VS Code 开发语言 TS 简化版贪吃蛇的实现主要涉及的功能就是在吃到场景中随机产生产生的物体后 物体会到蛇头的后面并且跟随移动路径 其原理主要是通过数组来存储相关的坐标数据
  • hive-使用开窗函数实现百分比、topN、前百分比

    有一个订单表A 分别有order id 订单id user id 用户id amt 金额 三个字段 用sql实现以下功能 i 求订单总量为top3的用户及交易笔数 同时求出其交易笔数占全量订单笔数的占比 ii 求每个用户top3交易金额的订
  • SpringAOP JDK动态代理

    1 本篇博客的背景和目的 目前我本人正在学习SpringFramework的知识 这也是这个专栏的主题 我前面的几篇博文中 简单的认识了一下SpringFramework 记录了SpringFramework的环境搭建 记录了SpringI
  • 单片机 指针 的应用

    目录 直接访问物理地址下的数据 1 访问硬件指定内存下的数据 1 如设备ID号 2 将复杂格式的数据转换为字节 方便通信与存储 直接访问物理地址下的数据 1 访问硬件指定内存下的数据 1 如设备ID号 include
  • java 外部调用内部类的方法

    1 使用static可以声明一个内部类 可以直接在外部调用 class Outer 定义外部类 private static String info hello world 定义外部类的私有属性 static class Inner 使用s
  • 关于使用U盘安装ESXi发生的一些错误及解决经验

    烧录工具 rufus ESXi version 6 5U2 安装过程可以参考 https www starwindsoftware com blog create an esxi 6 5 installation usb under two
  • PyCaret入门

    安装 pip install pycaret 查看版本 from pycaret utils import version version 参考文档 GitHub 官网 用户教程 预处理 函数 模型 Notebook教程 函数 Functi
  • 解决VM Workstation安装VMware Tools显示灰色的办法

    其实虚拟机用了好多次了 但是每次使用配置时还是忘这忘那的 这里就简单地再啰嗦下了 解决办法如下 1 关闭虚拟机 2 在虚拟机设置分别设置CD DVD CD DVD2和软盘为自动检测三个步骤 3 再重启虚拟机 灰色字即点亮 如果上述步骤不行
  • 1.spark环境搭建

    Anaconda https www anaconda com products individual d JDK https docs aws amazon com zh cn corretto latest corretto 8 ug
  • OPENGL纹理加载显示颜色偏差

    问题 用Kinect Dk读出来的图像用Opencv显示没有纹理 保存为BMP也没有问题 但是OpenGL纹理加载显示出来偏蓝 解决 OpenGL纹理数据加载时使用的颜色通道错误了 原来数据的颜色通道是BGRA的 之前 glTexImage
  • mysql调优小计

    1 选择最合适的字段属性 类型 度 是否允许NULL等 尽量把字段设为not null 查询时对 是否为null 2 要尽量避免全表扫描 先应考虑在 where 及 order by 涉及的列上建 索引 3 应尽量避免在 where 句中对
  • 使用myheritage实现静态照片变成视频

    网址 https www myheritage com 首先 注册 可以使用google账号 其次 上传照片 接下来 生成动画 最后 下载视频
  • python之post上传文件简单示意

    coding utf 8 作者 萧海 联系 128 File py post py Date 9 1 2023 4 48 PM application
  • java.lang.NoClassDefFoundError: Could not initialize class com解决方案

    本文转载自 https www cnblogs com liuyangfirst p 6811937 html 作者 liuyangfirst 转载请注明该声明 编写的时候遇到这样一个bug java lang NoClassDefFoun