Duplicate provider configs常见错误解决方案

Duplicate provider configs常见错误解决方案

Duplicate provider configs常见错误

Duplicate provider configs字面意思就是配置重复加载了,但排查起来,原因是多样的,现在就常见的几种错误及解决方案发一下。

xml配置和标签重复

1.xml配置了provider

<dubbo:application name="liquidation-provider"/>
  1. 标签启动
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
@EnableDubboConfig
@DubboComponentScan
public @interface EnableDubbo {

这两都会加载dubbo的配置,导致重复加载,去掉其中一种即可。

本地项目启动报错

这种问题,把项目打包出去,单独启动tomcat中的war包,发现没有问题,但在本地启动就会报这个错误,导致有的人一时找不出问题,就自动放弃,这样多不好。特别有些时候需要我们本地调试项目,这个问题就很突出了,今天捣鼓了一个小时左右,终于将这个错误解决。
以下是解决思路,希望对其他人有所帮助。

  1. 错误图示如下:
    在这里插入图片描述

  2. 看到这个错误,首先想是哪里在文件中多写了一行dubbo:provider配置,把dubbo-provider.xml翻来覆去的看了一个遍,也没有重复的地方,排除;

  3. 标签排除,因为我这个不是Springboot项目启动;

  4. 排查dubbo-provider.xml的加载文件,ctrl+h,如下图:
    在这里插入图片描述

  5. 整个项目看了一下,加载项只有web.xml,点进去看一下:

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:dubbo-provider.xml</param-value>
    </context-param>

找到问题点了,classpath就是项目的根目录,classpath*
就是根目录下的所有文件,如果有dubbo-provider.xml,就会加载,idea项目如下图所示:
在这里插入图片描述
这也就是为什么,打包成war去执行,不报错,而放到本地开发工具启动就会报错的原因;
6. 找到原因后,我将*去掉,如下:

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:dubbo-provider.xml</param-value>
    </context-param>

7.启动项目,效果如下:
在这里插入图片描述

  1. 至此问题修复。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值