1 问题前情
这两天把之前的项目改了改想重新部署一下,结果部署之后发现后端服务报mysql连接异常,像下面这样。我在网上搜了很多方法,有说要添加 useSSL=false的,有说添加时区的,我都试了一遍结果还是报一样的错误
Caused by: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
2 问题发现
这个时候我就觉得很奇怪,本地测试环境都能跑起来正式环境不应该有问题呀,然后我就用反编译工具把打好的 jar 包打开看里面的内容,结果发现里面的数据库配置信息没有改变而且环境还选的是 dev 的
4 分析问题出现的原因
maven
对 class
文件进行打包,当我们修改文件后本地看起来是新代码,但是 class
文件中还没有变化,因此打包后的 jar
包还是修改之前的内容,从而导致发布失败(这是我的个人理解)
3 问题解决
- 首先回到IDEA中,点击右上角绿色的 小锤子 按钮,对代码进行重新编译
- 然后使用maven对代码进行打包
- 此时重新发布到docker上运行就不会有问题啦
谨以此文献给和我一样碰到困难的朋友们
PS:本文仅代表个人观点,仅供参考,如果有不合适或理解错误的地方欢迎在评论区指正