You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@dubbo.apache.org by 王文龙 <40...@qq.com> on 2020/11/05 06:40:19 UTC

springboot2.2.1集成dubbo2.7.6,使用xml配置遇到的问题

您好!
我在使用springboot2.2.1集成dubbo过程中发现,dubbo2.7.6中启动过程因为Application配置加载机制导致的报错


问题复现
dubbo xml配置



通过importResource注解引入xml



spring依赖引用定义的reference配置



启动报错堆栈&nbsp;








经过调试发现DubboBootstrap这里configManager还没有加载到xml中的配置直接new了一个ApplicationConfig返回导致的

进一步调试发现configsCache是dubbo相关bean在spring中初始化后加入进来的,但是在spring实例化引用了这个reference的bean的时候,xml中定义的dubbo相关的bean还没有实例化,相关的配置也就没有进入到configManager
。所以此时获取不到xml中定义的application name,报错启动失败。
如果工程中恰好xml中的bean实例化在前就没有这个问题。
请问有没有办法可以在这里先通过springcontext getBean的方式先获取到xml中定义的配置?


感谢!

回复:springboot2.2.1集成dubbo2.7.6,使用xml配置遇到的问题

Posted by "龚德伟(赫炎)" <de...@alibaba-inc.com>.
看不到具体的错误信息,建议在dubbo创建相关issue。
已知dubbo 2.7.8 annotation 混合xml配置后的初始化过程存在一些问题,初始化DubboAutoConfiguration.serviceClassPostProcessor(Set<String> packagesToScan) 时导致意外加载xml ReferenceConfig bean,接着导致提前初始化创建一个空的ConfigCenterBean,导致定义在application.properties中的dubbo.config-center属性没有生效。相关issue:https://github.com/apache/dubbo-spring-boot-project/issues/746。
dubbo 2.7.8版本不建议混合使用xml配置和annotation。


------------------------------------------------------------------
发件人:王文龙 <40...@qq.com>
发送时间:2020年11月10日(星期二) 11:49
收件人:dev <de...@dubbo.apache.org>
主 题:springboot2.2.1集成dubbo2.7.6,使用xml配置遇到的问题

您好!
我在使用springboot2.2.1集成dubbo过程中发现,dubbo2.7.6中启动过程因为Application配置加载机制导致的报错

问题复现
dubbo xml配置


通过importResource注解引入xml


spring依赖引用定义的reference配置


启动报错堆栈 




经过调试发现DubboBootstrap这里configManager还没有加载到xml中的配置直接new了一个ApplicationConfig返回导致的

进一步调试发现configsCache是dubbo相关bean在spring中初始化后加入进来的,但是在spring实例化引用了这个reference的bean的时候,xml中定义的dubbo相关的bean还没有实例化,相关的配置也就没有进入到configManager
。所以此时获取不到xml中定义的application name,报错启动失败。
如果工程中恰好xml中的bean实例化在前就没有这个问题。
请问有没有办法可以在这里先通过springcontext getBean的方式先获取到xml中定义的配置?

感谢!