dubbo 应用既是生产者又是消费者 spring bean id冲突

发布于 2021-12-05 02:10:45 字数 2341 浏览 845 评论 13

service-security-provider应用有provider和consumer配置文件

其中secutrity-consumer引用两个服务

	 <dubbo:reference interface="cn.ce.best.member.service.KaUserService" id="kaUserService" init="true"/> 
	 <dubbo:reference interface="cn.ce.best.member.service.KaMenuService" id="kaMenuService" init="true"/>

这两个服务是另一个应用service-member-provider提供的,代码如下

    <dubbo:service interface="cn.ce.best.member.service.KaUserService" ref="kaUserService"/>
    <dubbo:service interface="cn.ce.best.member.service.KaMenuService" ref="kaMenuService"/>

启动service-security-provider报如下错误(已排除serviceImpl 的id重复)

Caused by: java.lang.IllegalStateException: Duplicate spring bean id kaUserService
	at com.alibaba.dubbo.config.spring.schema.DubboBeanDefinitionParser.parse(DubboBeanDefinitionParser.java:106)
	at com.alibaba.dubbo.config.spring.schema.DubboBeanDefinitionParser.parse(DubboBeanDefinitionParser.java:77)
	at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:73)
	at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1438)
	at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1428)
	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:185)
	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:139)
	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:108)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)
	... 23 more

 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(13

夜无邪 2021-12-05 07:16:50

引用来自“是夜色太荒芜”的评论

是因为我把其他提供服务的dubbo应用的实现类也依赖进工程里了,导致ID冲突

别低头,皇冠会掉 2021-12-05 07:16:48

我好像知道问题了 duobbo应用依赖其它应用服务时,是不是只需要depence api吧,我把实现类也depence进去乐,是不是冲突了?

可是我不能没有你 2021-12-05 07:16:48

是因为我把其他提供服务的dubbo应用的实现类也依赖进工程里了,导致ID冲突

私藏温柔 2021-12-05 07:16:42

回复
是的,只要接口。

瀞厅☆埖开 2021-12-05 07:16:32

dubbo:reference那个给个id不就完事了。

凯凯我们等你回来 2021-12-05 07:16:31

绝对没问题

因为看清所以看轻 2021-12-05 07:16:21

是用包扫描的方式扫描注解,实现类上已经写上注解

成熟稳重的好男人 2021-12-05 07:16:07

回复
而且看你的提供者的配置,你的实现类应该是这么配的:@Service("kaUserService")。 这样的话,就和你consumer.xml里的 <dubbo:reference interface="cn.ce.best.member.service.KaUserService" id="kaUserService" init="true"/> 的id冲突了

奈何桥上唱咆哮 2021-12-05 06:49:31

对 是冲突的问题,本来consumer只需要依赖provider的api就行,我把impl工程也依赖进来了,spring容器实力化impl之后,dubbo再去解析consumer的命名空间后,getAttribute("id")之后,去注册中心中查找,发现重复就抛异常了。

吃颗糖壮壮胆 2021-12-05 06:29:22

确认两个问题先,你的配置文件里面有没有使用包扫描的方式去扫描注解?KaUserService的实现类上有没有写注解?

归属感 2021-12-05 06:17:58

引用来自“javageek”的评论

搞两个不同的id就可以了

看透却不说透 2021-12-05 06:10:21

id 改成kaUserServiceTest后,又报错服务未提供 Caused by: java.lang.IllegalStateException: Failed to check the status of the service cn.ce.best.member.service.KaUserService. No provider available for the service cn

情场扛把子 2021-12-05 06:07:05

搞两个不同的id就可以了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文