skipped xml bean definition file due to specified profiles [default] not matching:

最近公司内部的系统升级技术栈,本机调试没有问题后部署到dev环境(linux服务器)

但是一直出现下面这个情况,bean实例化失败,bean没有注入成功,各种检查包扫描等的配置都没有问题

 

然后从日志头部开始一条一条的看,然后发现一些不大正常的INFO日志,看到了没这些配置了bean id的xml文件都被skiiped了,一定是这个原因导致的bean没有被加载,所有后面bean报错了。

 

开始定位到底为什么这些xml的文件skipped过去了,哪里设置了要skipped的,继续仔细看日志

这句话 specified profiles[default] not matching

  Skipped XML bean definition file due to specified profiles [default] not matching: URL [jar:file:/home/admin/app-run/xxx-web-1.0.0-SNAPSHOT-executable.jar!/BOOT-INF/lib/xxx-integration-service-1.0.0-SNAPSHOT.jar!/META-INF/xxx/xxx-integration-service-beans.xml]

确切的说这句话我直接也到spring源码中看了这段逻辑,这行代码specifiedProfiles的值是default,getReaderContext().getEnvironment()是在获取当前的环境,dev的当前环境是dev所以和default匹配不上,就skipped过去了,

但是本机是default的值,所以这里可以完美的加载到。然后这个问题在dev就百分百的每次都会复现出来,无法启动成功。

查看pom里面的配置找default的值,找到了,如下图

pom中根据profile中的id的值来加载不同的application.properties的配置,然后全局搜索没有找到profile的id是dev的定义。然后我自己加了一段id是dev的配置,dev进行配置后。。失败。。又查看了公司的技术栈文档,技术栈中对这块儿有封装,猜测可能已经改变了配置方式,没有时间继续研究是否公司技术栈改的原因。

继续找解决办法,最终全局搜索default,发现还真有配置profile=default的地方,不是一个地方,是日志中被skipped的xml中都有一行这个配置,mmp虽然我是个铝的,但是我也爆粗口了

删掉profile=default,重新打包,完美解决问题
 


 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值