[问题分析] mybatis dtd文件导致测试环境无法启动

1.最近项目比较紧张,同一个工程修改的人越来越多,大家都开始搭建自己的测试环境,我负责的一个sprigboot工程,同事怎么都无法部署成功。报错提示如图


报错信息

从报错信息来看,应该是一个问题导致了bean初始化失败。

channelMappedDao<-sqlSessionWrite<-sqlSessionFactoryWriter<-datasource-context.xml<-channelMappedMapper.xml

原因:nested exception is org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: java.net.SocketException: Network is unreachable (connect failed)

从这个结果分析是网络无法连接导致创建文档实例失败。至于为什么需要创建文档实例,后面再仔细研究一下mybatis原理

好奇为什么一个mapping配置文件会因为网络无法连接初始化出错,发现确实有一个http的url链接


mapping文件

2.基于以上分析,于是看看两个服务器有什么区别

wget http://mybatis.org/dtd/mybatis-3-mapper.dtd

能正常启动的服务器 可以正常下载

wget正常

无法启动的服务器 连接超时


连接超时

基本已经定位到问题原因,就是同事的服务器没有连接外网。

从网上找了一下,有类似问题的解决方案,下载mybatis-3-config.dtd,放到项目中,用相对路径

```

  

"./mybatis-3-config.dtd">  

```

3.很奇怪mybatis使用范围这么广不应该只能用这种方式处理,于是对比mybaits的版本,项目使用的是其他团队二次开发的jar

于是又开始了一组对比试验

试验机器|试验项目|结果

你可能感兴趣的:([问题分析] mybatis dtd文件导致测试环境无法启动)