手动配置资源文件解决mybatis中java.io.IOException: Could not find resource MybatisConfig.xml错误,亲测有效

在测试Mybatis的查询和删除方法时遇到IOException,提示找不到MybatisConfig.xml资源。检查项目结构和配置文件位置无误,尝试过修改pom.xml文件添加资源包含,以及使用反射机制读取资源,但问题依旧。最后,通过手动将配置文件复制到IDEA的输出目录下,成功解决了问题。问题可能源于模块间的冲突导致资源未正确打包。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

在测试用mybatis查询删除方法时,报错java.io.IOException: Could not find resource MybatisConfig.xml,看了很多博主的文章,并且都尝试过了,但是都没有解决问题,最后本人亲自将mybatis的配置文件拷贝到idea的输出目录下将问题解决。

错误详情

所有的测试方法都没有通过,并且都是同样的问题,java.io.IOException: Could not find resource MybatisConfig.xml
在这里插入图片描述

本人项目的目录结构

我的项目目录结构完全按照mybatis相关标准进行创建的,资源文件在resources目录下,但是在读取mybatis配置文件时(in = Resources.getResourceAsStream(“MybatisConfig.xml”);)还是出现了问题
在这里插入图片描述

其它博主问题分析以及解决方案

1. 将放配置文件的文件夹加入到资源路径中去。

在这里插入图片描述
这种解决方案适用于配置文件的目录结构不符合标准,没有将配置文件放在resources目录下,或者resources资源文件夹还不是资源路径(注:如果文件夹右下方式黄色的,就说明该文件夹就是资源目录),显然本人的时没有问题的,不需要配置了。

2. 在pom文件中添加依赖

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>*.xml</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>
</build>

这段代码的意思是将资源问价夹下面的相关配置问价打包。
本人添加后,在idea的输出目录中资源目录下的文件一个也没有打包。
如图:
idea将项目的相关文件输出后,相关的配置文件一个也没有,然后运行报错也是正常的,因为输出目录下确实没有配置文件,所以报错也是正常的,反正问题此时还是未能解决
在这里插入图片描述

3. 用反射机制读取资源文件

InputStream in = Resources.class.getResourceAsStream("MybatisConfig.xml");

这种方式也是不行的,因为相关配置文件在输出路径中就没有,在下面创建SqlSessionFactory工厂时同样会报空指针异常的错误。

最终解决方案

手动将mybatis的配置文件拷贝到idea的输出路径中去,如图:
在这里插入图片描述
启动项目:
所有测试方法全部通过,bug解决。
在这里插入图片描述

总结

配置文件始终不能正常输出可能是模块与模块之间存在冲突(本人在项目中创建了很多重名的文件以及相似的模块)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xjitcm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值