泪目了,记录一下改了一天的bug

Posted 我永远信仰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了泪目了,记录一下改了一天的bug相关的知识,希望对你有一定的参考价值。

一杯茶、一包烟、一个BUG改一天

首先,最后一步是困扰我最久的——修改数据库字段的属性。不然读取不到数据,返回空值。空指针异常看得我头皮发麻。

在把数据库字段修改正确后,我改的是对象OrderInfo(这里的是有个属性,没有和数据库一样,导致插入不了数据),并没有改数据库的字段,效果一样。

接着运行,报错

java.net.ConnectException: Connection refused: connect异常

因为我使用的是阿里云,nacos中间件,并且注册了网关。这里需要使用到另一个微服务hospital-manage,而该服务是在本地的,并没有进行nacos注册,所以出现该错误。产生了跨域问题:

三个地方,任何一个地方不相同,都会产生跨域问题

  1. 访问协议:协议不相同,比如http访问https。
  2. 访问地址:192.168.1.1去访问172.11.1.1
  3. 端口号:9528 访问8201

修改:

在该模块中配置nacos,

项目如何注册到nacos中心_阿木木fe的博客-CSDN博客_服务注册到nacos

添加依赖

<!--服务注册 nacos-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>2.1.0.RELEASE</version>
</dependency>

添加配置

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 120.0.0.1:8848 #地址

成功添加到nacos


还需要配置到网关

#设置路由id
spring.cloud.gateway.routes[7].id=service-manage
#设置路由的uri,lb:负载均衡
spring.cloud.gateway.routes[7].uri=lb://service-manage
spring.cloud.gateway.routes[7].predicates= Path=/**

至此:解决了跨域问题

运行, 仍然空指针异常:

调试

医院的路径的端口是 9998,这里可能有问题

– 修改成9998后,发现医院返回的result仍为空。多次调试,发现manage数据库中少了orderInfo表,创建该表。并且和实体类字段对应。

– 继续调试,result仍未空,空指针要把我搞哭了。尝试手动往该表中添加一条数据。继续调试。 仍为空指针。。。

进一步调试

http://localhost:9998/order/submitOrder

尝试在浏览器访问该地址,失败。

分析:

该路径是需要请求的路径。

访问http://localhost:9998是没问题的。

在医院(manage)的HospitalController中确实有该方法

而且,已经进入了该方法,不是url问题。继续调试

进行了一次查询,并且有一条数据

但是,这里的返回了空指针。为什么?
该service是查Schedule数据库里的

此时我的数据库里是没有数据的。那么我先添加一条数据,重新调试。

此时,已经有数据,并不是空指针。

但是result仍为空。

继续调试,发现这里空指针

这里的respdata为空,而url和reqData都有数据。

继续往下

此时map是有数据的,最后返回的map的size为8,医院处理订单后,返回的map的size是8

这里返回一个空的result。

跳过了if,,中间的逻辑并没有执行。直接到达最后发送短信。

因为在if里面生成医院订单。被跳过了,所以数据库manage中并没有订单。

此时 已经基本把逻辑排完,突然想起,一个巨坑160巨坑

这里将id改成了1L,这是一个字符串。查看数据库

将其改为varchar。重新调试

!!!!泪目啊!!!!!太难了。。。

可以查看订单了…………

以上是关于泪目了,记录一下改了一天的bug的主要内容,如果未能解决你的问题,请参考以下文章

Maven+SSM项目弹出context initialization failed错误 调试了一天的Bug

卧槽,泪目了!二哥被读者的深情告白了感动哭了!!!!

一个二线城市程序员-周末一天的生活

210天从外包踏进华为跳动那一刻,我泪目了

记录一次BUG修复-Entity Framwork SaveChanges()失效

记录一次BUG修复-Entity Framwork SaveChanges()失效