接口404是新手常常会遇到的,但是一个项目熟悉以后,很少会遇到这个问题。这两天在开发新东西的时候居然遇到了,怎么也想不通。
这里梳理几个常规步骤,可以看看
1 检查url是否正确,不要手打,直接从代码里面复制粘贴
2 确认自己的服务是否正常启动
3 调用时GET和POST方法是否搞错了
但是以上几个步骤都是针对第一次用这个接口的情况,我这次的情况是:接口已经发布在了生产环境,之前都是正常请求的,只是这一次测试环境404.换了几个包都不行。而且因为所有接口都有鉴权,所以在鉴权错误的时候会提示“鉴权错误”,鉴权正确了反而请求不到提示404.
说明请求已经过了网关,但是却没有分发到对应的模块。搞不懂啊搞不懂,这是为什么呢?什么都试一下了只好
排查过程
1 把生产环境的包换到测试环境,看行不行
2 本地访问接口,看是否正常
排查结果
生产环境的包换到测试环境,测试环境也能正常调用
而本地启动以后,接口也无法正常调用。
所以说明问题出在代码上了。此时就需要检查自己代码改动的地方,调出来idea自带的版本管理,比对和云端版本不同的地方。点这里来,一一比对。
然后就发现问题在哪里了,为什么本地的application.name居然是另一个模块的name?
改回正常的name之后重新打包就OK了。