You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JUnit测试Hibernate配置文件时遇解组异常求助

解决Hibernate配置文件反序列化异常(ConfigurationException)

1. 先查hibernate.cfg.xml的语法问题

这个报错90%是XML本身格式错了,逐行核对:

  • 开头必须有正确的XML声明:<?xml version="1.0" encoding="UTF-8"?>,别用中文引号,编码要和文件实际编码一致
  • 所有标签必须成对闭合,比如<hibernate-configuration>对应</hibernate-configuration>,<session-factory>对应</session-factory>,别漏写闭合标签
  • 属性标签格式要规范,比如<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/db_name</property>,属性名和值的引号要完整,不能有拼写错误
  • 注释不能嵌套,<!-- 注释内容 -->要写完整,别留半截

2. 确认配置文件的存放位置

  • 把hibernate.cfg.xml放在src/main/resources(主代码)或src/test/resources(测试代码)目录下,Hibernate默认从类路径根目录加载这个文件
  • 执行Maven命令mvn clean test,然后去target/test-classes目录下看看有没有这个配置文件,没复制过去的话就是路径不对

3. 核对依赖版本是否兼容

  • 确保pom.xml里Hibernate相关依赖版本统一,比如hibernate-core和hibernate-entitymanager(如果用的话)必须同版本
  • 用MySQL 8.0+的话,mysql-connector-java版本要在8.0以上,同时Hibernate建议用5.4.x及以上版本,避免驱动和框架不匹配
  • 别重复引入冲突依赖,比如新版本Hibernate已经把注解整合到hibernate-core里了,不用再单独加hibernate-annotations

4. 检查XML文件编码

  • 确保文件编码是UTF-8,别用GBK等其他编码,特殊字符会导致解析失败
  • IDE里右键文件,查看“File Encoding”设置,改成UTF-8,IntelliJ用户可以勾选“Transparent native-to-ascii conversion”

5. 单独测试配置文件加载

先排除DAO代码的干扰,写个简单测试验证配置文件能不能正常加载:

@Test
public void testConfigLoad() {
    try {
        Configuration config = new Configuration().configure();
        SessionFactory sessionFactory = config.buildSessionFactory();
        sessionFactory.close();
        System.out.println("配置文件加载成功");
    } catch (Exception e) {
        e.printStackTrace();
    }
}

这段代码报错的话,问题肯定在配置文件或依赖上;能跑通再去查PcBuildDao的逻辑

6. 检查Maven的资源配置

确保pom.xml里的build节点正确包含resources目录,避免配置文件没被打包:

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>false</filtering>
        </resource>
        <resource>
            <directory>src/test/resources</directory>
            <filtering>false</filtering>
        </resource>
    </resources>
</build>

内容的提问来源于stack exchange,提问作者Frank Christian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 00:31:04