在启动SpringBoot报出(没有可用的EC2元数据,因为应用程序没有在EC2环境中运行.)求解答!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在启动SpringBoot报出(没有可用的EC2元数据,因为应用程序没有在EC2环境中运行.)求解答!相关的知识,希望对你有一定的参考价值。
Caused by: java.lang.IllegalStateException: There is no EC2 meta data available, because the application is not running in the EC2 environment. Region detection is only possible if the application is running on a EC2 instance
参考技术A 原因:控制层同一请求映射到两个方法解决:查看报错地方,找出同一请求映射到两个方法的请求路径,修改后即可。
记一次打包的诡异现象
一、前情提要:
今天线上打包,发现启动正常,但是访问异常,看日志也没有打印出什么异常信息。
更新的微服务包访问的时候一直报出【403】,访问被拒
项目架构:springBoot + maven
二、机缘巧合:
上午出现这个问题当场没有找到解决办法,明明启动正常怎么就访问不了?先放下了这个问题
下午另一个项目调试,也是部署到服务器后,访问拒绝,当时怀疑打包配置有问题,我就在本地自己打了包部署上去,项目启动正常!!!
这是怎么回事?使用比对工具首先发现,包里少了某些功能代码,但是这不该是影响运行的理由啊?
之后再看其它的不同,发现依赖的一个基础包【common】里少了几个依赖包,并且mavne的pom配置也不尽相同
【判定:是打包环节出了问题】
三、后知后觉:
现在想想,特定的包访问被拒绝,而所有的包都依赖【common】包,应该想到是特定包打包的时候,依赖包不一致导致的
项目都是【eureka】的,不能访问,而不是报错,访问权限控制,不就是依赖的【common】包里的配置吗?
所以,打包的话,尽量一次全打,哪怕只用其中一个,保证基础依赖包唯一
单独打包的话,可能导致,引用了上次的【common】包,或者在本地存在的本身就有异常的【common】包
【原因猜想-1:目标包是单独打的,基础依赖包出错】
【原因猜想-2:打包的机器,maven工具出了问题,依赖错误或者依赖缺失】
四、总结:
针对这种框架,如果服务部署运行正常,而配置又没有问题的话,好好的就是不能访问,那么就【重新打包】试试,说不定就好了
不要钻死胡同,一切都正常了,无法排查原因了,就不要自己瞎想了
看着正常,但是不行,那就换一个试试,不要纠结,换一个好了,就对比,看哪里不一样,方便下次排查
以上是关于在启动SpringBoot报出(没有可用的EC2元数据,因为应用程序没有在EC2环境中运行.)求解答!的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ec2 实例上运行元数据库(没有弹性 beantalk)