ibatis.io.ResolverUtil - Reader entry 乱码的解决办法

问题描述

最近想将sprintboot 2.16提升到2.2.6,发现控制台会有ibatis.io.ResolverUtil - Reader entry 乱码情况。

10:33:53.696 [main] DEBUG org.apache.ibatis.io.ResolverUtil - Not a JAR: file:/D:/Java/IdeaProjects/shiyanlou_ssm_test/target/classes/com/ssm/mapper/UserMapper.class
10:33:53.698 [main] DEBUG org.apache.ibatis.io.ResolverUtil - Reader entry: ����   1    selectLogin *(Lcom/ssm/model/User;)Lcom/ssm/model/User; 
10:33:53.731 [main] DEBUG org.apache.ibatis.io.ResolverUtil - Checking to see if class com.ssm.mapper.UserMapper matches criteria [is assignable to Object]
10:33:53.754 [main] DEBUG o.m.spring.SqlSessionFactoryBean - Parsed configuration file: 'class path resource [mybatis-config.xml]'
10:33:53.756 [main] DEBUG o.m.spring.SqlSessionFactoryBean - Property 'mapperLocations' was not specified or no matching resources found

原因是有说日志配置问题,有说版本漏洞,旧版本等。有人也找到了源码的错误地方,是DefaultVFS的InputStreamReader没有传第二个参数导致。:


            is = url.openStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(is));
            List<String> lines = new ArrayList<String>();
            for (String line; (line = reader.readLine()) != null;) {
              if (log.isDebugEnabled()) {
                log.debug("Reader entry: " + line);
              }
              lines.add(line);
              if (getResources(path + "/" + line).isEmpty()) {
                lines.clear();
                break;
              }
            }

mybatis*中DefaultVFS的logger乱码问题:https://www.cnblogs.com/ptqueen/p/7275293.html

解决办法

好多文章只给出修改配置,没告诉实质性的办法,那么请参考下面的第二点。

1、spring-mybatis.xml的配置文件,注释掉typeAliasesPackage的配置

	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
	......
		<property name="typeAliasesPackage" value="com.company.project.model" /> 
		......
	</bean>

如果配置的是mybatis配置文件,就需要去掉typeAliases

<typeAliases>
     ...... 
</typeAliases>	

    或者,如果是代码创建SqlSessionFactory的话,注释掉:

    //sqlSessionFactoryBean.setTypeAliasesPackage("com.company.project.model");

2、各个dao或者mapper的映射文件*mapper.xml文件中,引用实体类的地方加上路径,比如Book改成com.*.*.Book
修改前:

<select id="queryById" resultType="Book" parameterType="long">
		......
	</select>

修改后:

<select id="queryById" resultType="com.company.project.model.Book" parameterType="long">
		......
	</select>
这个警告信息是指在使用Apache MyBatis时,无法解析一个资源。具体原因可能是资源路径有误或者不存在。MyBatis是一个数据库持久化框架,用于处理与数据库的交互操作。当使用MyBatis时,可能需要加载一些配置文件或者映射文件,这些文件通常会存放在classpath中,如资源文件夹或jar包中。 警告中的org.apache.ibatis.io.resolverutil表示MyBatis的资源加载工具类,它负责解析资源路径,并加载对应的资源文件。[addifmatching,264]表示发生错误的代码行数和位置。 对于这个警告,可以尝试检查以下几个方面: 1. 资源路径是否正确:检查MyBatis配置文件中指定的资源路径是否正确。可以通过查看配置文件或者代码中的相关路径设置来确认。 2. 资源文件是否存在:确认指定的资源文件是否存在于指定的路径中。可以通过查看文件系统或者项目结构来验证。 3. 资源文件是否被正确加载:可以通过调试代码来确认资源文件是否正确加载,以及加载路径是否正确。 4. 版本兼容性:检查所使用的MyBatis版本和其他相关依赖的兼容性。有时候不同版本之间的兼容性问题也会导致类似的警告。 总之,警告中的“could not exa”意味着MyBatis在解析一个资源时发生了错误。通过逐步检查资源路径和文件的正确性,以及对相关代码进行调试,可以解决这个问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值