dubbo Duplicate spring bean id的问题解析

在将微服务改为使用dubbo进行RPC调用时,遇到测试环境报错“Duplicate spring bean id”。问题出现在bean的id重复注册,排查过程包括检查XML配置文件、bean id命名冲突、环境差异等。最终发现是测试环境的META-INF目录下的配置文件导致bean重复注册,解决方案是修改assembly.xml打包配置,排除META-INF下的文件。Dubbo源码分析表明,当ref的required为true且bean未设置id时,会根据name或类名生成唯一id,若id冲突则抛出异常。
摘要由CSDN通过智能技术生成

近期,项目微服务开始提供RPC服务,微服务之间改为dubbo调用。本地开发调试时,服务提供方和服务消费方都能正常启动,验证通过。

对于消费方,在bean的xml文件声明服务消费的引用方式:

<dubbo:reference id="operationWaybillService" interface="com.demo.service.OperationWaybillService" retries="0" timeout="6000" check="false" />

 

合入代码库并在测试环境部署,消费方无法启动,报错" Duplicate spring bean id operationWaybillService",如下图:

很明显,提示bean重复注册了。但是为什么本地环境是OK的,但测试环境却有问题?

 

结合网上搜索到的方法,一一尝试:

1. 在xml配置文件中重复声明同一个bean

   经排查,并没有。

2. bean的id跟项目中其他方法重名了,包括pom引用其他模块时有相同的bean id值,需要修改id的名字

   排查了其他模

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值