目录
报错起因
报错截图
运行环境
数据库配置
解决思路
报错起因
在web项目上拉取代码启动web服务抛CannotGetJdbcConnectionException。
报错截图
运行环境
windows + idea + maven + tomcat + springMVC + mybatis
数据库配置
url=xxx
driverClassName=xxx
username=xxx
password=xxx
确认配置没问题。
解决思路
定位问题 > 解决问题 > 测试验证
在tomcat安装目录 webapps > 找对应服务目录 > 数据库配置文件,发现url的值确实是
http://maven.apache.org
排查url的关键值存在项目中哪些文件中?
根据url全局搜索(ctrl + shift + f),发现pom.xml文件中定义了url,大胆猜测下我使用maven进行打包,maven中定义的url变量在jvm中使用,并且后面的会覆盖前面定义的值,导致的此问题。
修改错误
去掉pom.xml中 url 标签,重新打包后重启服务。
重启测试
总结
pom.xml与PropertyPlaceholderConfigurer变量冲突,且pom中的同名变量会覆盖spring配置文件中的变量。
记得排查配置文件、排查mybatis配置文件、排查pom.xml文件。