-
Notifications
You must be signed in to change notification settings - Fork 26.6k
Closed
Description
Environment
- Dubbo version: 2.7.2
- Java version: 1.8
Steps to reproduce this issue
一个API网关的应用,即是服务提供者,也是消费者,消费是dubbo泛化调用,从2.6 升级到2.7.2之后,服务启动报错 Duplicate Config found for ApplicationConfig
ApplicationConfig applicationConfig = new ApplicationConfig();
applicationConfig.setName("generic-call-consumer");
RegistryConfig registryConfig = new RegistryConfig();
registryConfig.setAddress("zookeeper://127.0.0.1:2181");
ReferenceConfig<GenericService> referenceConfig = new ReferenceConfig<>();
referenceConfig.setInterface("org.apache.dubbo.samples.generic.call.api.HelloService");
//会报错
applicationConfig.setRegistry(registryConfig);
referenceConfig.setApplication(applicationConfig);
referenceConfig.setGeneric(true);
referenceConfig.setAsync(true);
referenceConfig.setTimeout(7000);主要原因是 2.7.x之后 referenceConfig.setApplication添加了校验逻辑 checkDuplicate
public void setApplication(ApplicationConfig application) {
if (application != null) {
checkDuplicate(this.application, application);
this.application = application;
}
}
private void checkDuplicate(AbstractConfig oldOne, AbstractConfig newOne) {
if (oldOne != null && !oldOne.equals(newOne)) {
String configName = oldOne.getClass().getSimpleName();
throw new IllegalStateException("Duplicate Config found for " + configName + ", you
should use only one unique " + configName + " for one application.");
}
}针对这种情况要怎么处理?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels