记一次打包的诡异现象

Posted hackxiyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一次打包的诡异现象相关的知识,希望对你有一定的参考价值。

一、前情提要:

  今天线上打包,发现启动正常,但是访问异常,看日志也没有打印出什么异常信息。

  更新的微服务包访问的时候一直报出【403】,访问被拒

  项目架构:springBoot + maven

  

二、机缘巧合:

  上午出现这个问题当场没有找到解决办法,明明启动正常怎么就访问不了?先放下了这个问题

  下午另一个项目调试,也是部署到服务器后,访问拒绝,当时怀疑打包配置有问题,我就在本地自己打了包部署上去,项目启动正常!!!

  这是怎么回事?使用比对工具首先发现,包里少了某些功能代码,但是这不该是影响运行的理由啊?

  之后再看其它的不同,发现依赖的一个基础包【common】里少了几个依赖包,并且mavne的pom配置也不尽相同

  【判定:是打包环节出了问题】

 

三、后知后觉:

  现在想想,特定的包访问被拒绝,而所有的包都依赖【common】包,应该想到是特定包打包的时候,依赖包不一致导致的

  项目都是【eureka】的,不能访问,而不是报错,访问权限控制,不就是依赖的【common】包里的配置吗?

  所以,打包的话,尽量一次全打,哪怕只用其中一个,保证基础依赖包唯一

  单独打包的话,可能导致,引用了上次的【common】包,或者在本地存在的本身就有异常的【common】包

  【原因猜想-1:目标包是单独打的,基础依赖包出错】

  【原因猜想-2:打包的机器,maven工具出了问题,依赖错误或者依赖缺失】

 

四、总结:

  针对这种框架,如果服务部署运行正常,而配置又没有问题的话,好好的就是不能访问,那么就【重新打包】试试,说不定就好了

  不要钻死胡同,一切都正常了,无法排查原因了,就不要自己瞎想了

  看着正常,但是不行,那就换一个试试,不要纠结,换一个好了,就对比,看哪里不一样,方便下次排查

  

  

  

以上是关于记一次打包的诡异现象的主要内容,如果未能解决你的问题,请参考以下文章

记一次诡异的jetty问题

记一次诡异的频繁Full GC

记一次诡异的bug

记一次诡异的bug

记一次诡异的SpringMVC中拦截路径的问题

记一次Jenkins 打包异常 ERROR: Exception when publishing, exception message [Failure]