错误信息:
springboot
项目打成war
包时部署到外部tomcat
时报错,报错信息如下:
***************************
APPLICATION FAILED TO START
***************************
Description:
Failed to bind properties under 'mybatis.configuration.result-maps[0]' to org.apache.ibatis.mapping.ResultMap:
Reason: Failed to extract parameter names for org.apache.ibatis.mapping.ResultMap(org.apache.ibatis.mapping.ResultMap$1)
Action:
Update your application's configuration
原因分析:
在SpringBoot 2.1.9.RELEASE中不会出现这个问题,高版本中引入了JNDI查询而出现此问题,因此禁用jndi即可。
SpringBoot启动时会首先读取spring.properties
配置文件,再去读取系统环境变量,查找spring.jndi.ignore
的值。
解决方法
- 在项目resources根目录下新增
spring.properties
配置文件,配置文件内容为:
注意配置文件的名称必须为spring.jndi.ignore=true
spring.properties
,原因请参见参考文档4 - Tomcat 启动时VM Options加上
-Dspring.jndi.ignore=true
参考文档
1.https://github.com/baomidou/mybatis-plus/issues/1608
2.https://github.com/mybatis/spring-boot-starter/issues/387
3.https://github.com/mybatis/spring-boot-starter/issues/350
4.https://blog.csdn.net/qq_30739519/article/details/78536965