【已解决】外部 DTD: 无法读取外部 DTD 'koca-jdbc-mybatis-mapper.dtd', 因为 accessExternalDTD 属性设置的限制导致不允许 'file' 访问。

项目名称:投行knib
KOCA版本 :5.0.1
KOCA模块 :mybatis
模块版本 :5.0.1
场景 :
mybatis-plus中使用了koca的batch标签,如<!DOCTYPE mapper PUBLIC "-//koca-jdbc-mybatis//DTD Mapper" "koca-jdbc-mybatis-mapper.dtd" >,<batch id="baseInsertBatch" fetchSize="1" >.

问题 :
当xml中引入了koca-jdbc-mybatis-mapper.dtd,启动服务报错:外部 DTD: 无法读取外部 DTD ‘koca-jdbc-mybatis-mapper.dtd’, 因为 accessExternalDTD 属性设置的限制导致不允许 ‘file’ 访问。

尝试解决方案:

<dependency>
    <groupId>com.szkingdom.koca.boot</groupId>
    <artifactId>koca-boot-starter-mybatis</artifactId>
</dependency>

如果是引入了mybatis-plus,5.2.0之前的版本都不支持,从5.3.0开始支持
临时解决方案:把xml中的<!DOCTYPE mapper PUBLIC "-//koca-jdbc-mybatis//DTD Mapper" "koca-jdbc-mybatis-mapper.dtd" >改成<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">,同时不使用KOCA的批处理batch标签

如果没有引入mybatis-plus,只引入了mybatis时,只需要加入配置

koca:
  jdbc:
    mapper:
      enabled: true

即可解决