前言
即使是在老师给了基础代码的情况下,还是走了不少弯路,特此记录
问题
1、ticket-service 报 异常
初始化数据库连接池失败
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet successfully received from the server was 2milliseconds ago. The last packet sent successfully to the server was 1 milliseconds ago.
解决:
通信链路故障,数据库收回连接
说法一:连接的ip地址、用户名、密码有误
我觉得可能性不大 ,应该会报数据库连接超时,并且在检查后确定没有问题
说法二:避免数据库收回连接,将mysql回收空闲连接的时间变长
show global variables like 'wait_timeout';
set global wait_timeout=604800;
set global interactive_timeout=604800;
还是不行
说法三:数据库和驱动版本不匹配
上网查了一下,我本地的MySQL版本是5.7.16 ,只要是5.1 的驱动都能使用,目前在用的是5.1.46,想着死马当活马医,将驱动版本降到了5.1.35,可以使用了
2、接口302 found 接口重定向到登录页面
解决:
讲道理,老师已经将前端中需要登录授权的地方注释掉了,不应该还需要登录。猜想是不是自己的代码哪里漏了。将课件给的代码复制了一分,还是不行。再猜是不是网关配置的问题,用老师的网关试了下,还是不行。只能比对代码了,代码也没问题,只剩依赖了,发现我的依赖里面多引用了 author2,把这个依赖注掉,可以了。猜想是不是这个jar里面的某个方式需要重写,没有处理,所以导致了需要登录。
3、Invalid bound statement (not found):com.ymz.t31.ticket.dao.TrainPassengerMapper
解决:
这个错误很明显是早不到statement,也就是找不到xml文件,因为我的xml文件是我自己用代码自动生成器生成的,所以路径是和老师的不一致的。在nacos的 db.yaml可以看见
mybatis-plus:
mapper-locations: classpath*:mybatis/*/*.xml
type-aliases-package: com.**.po
xml文件的目录是 mybatis/*/*/*.xml,改配置或改代码都可以
4、java.lang.NullPointerException: null
at com.github.pagehelper.PageInterceptor.intercept(PageInterceptor.java:147) ~[pagehelper-5.1.2.jar:na]
解决:
这个就很奇怪了,pagehelper分页插件里面空指针了,上网查了下,发现PostConstruct 执行两次就会导致系统空指针。可以看大佬的文章。
spring cloud 下 pagehelper 分页插件java.lang.NullPointerException_weixin_34149796的博客-CSDN博客
人生就是一条取经路,每一个人都是行者! --六小龄童