diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java index 338962817df8..2e2636d9fea8 100644 --- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java +++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java @@ -349,10 +349,6 @@ protected void init(boolean check) { initServiceMetadata(consumer); serviceMetadata.setServiceType(getServiceInterfaceClass()); - // TODO, uncomment this line once service key is unified - serviceMetadata.generateServiceKey(); - - Map referenceParameters = appendConfig(); ModuleServiceRepository repository = getScopeModel().getServiceRepository(); ServiceDescriptor serviceDescriptor; @@ -360,9 +356,14 @@ protected void init(boolean check) { serviceDescriptor = StubSuppliers.getServiceDescriptor(interfaceName); repository.registerService(serviceDescriptor); setInterface(serviceDescriptor.getInterfaceName()); + serviceMetadata.setServiceInterfaceName(serviceDescriptor.getInterfaceName()); } else { serviceDescriptor = repository.registerService(interfaceClass); } + serviceMetadata.generateServiceKey(); + + Map referenceParameters = appendConfig(); + consumerModel = new ConsumerModel( serviceMetadata.getServiceKey(), proxy, diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java index 01702c270508..048e29a2a4aa 100644 --- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java +++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java @@ -49,12 +49,14 @@ import org.apache.dubbo.rpc.RpcInvocation; import org.apache.dubbo.rpc.ServerService; import org.apache.dubbo.rpc.cluster.ConfiguratorFactory; +import org.apache.dubbo.rpc.model.DubboStub; import org.apache.dubbo.rpc.model.ModuleModel; import org.apache.dubbo.rpc.model.ModuleServiceRepository; import org.apache.dubbo.rpc.model.ProviderModel; import org.apache.dubbo.rpc.model.ScopeModel; import org.apache.dubbo.rpc.model.ServiceDescriptor; import org.apache.dubbo.rpc.service.GenericService; +import org.apache.dubbo.rpc.stub.StubSuppliers; import java.beans.Transient; import java.lang.reflect.Method; @@ -303,6 +305,11 @@ public void init() { initServiceMetadata(provider); serviceMetadata.setServiceType(getInterfaceClass()); serviceMetadata.setTarget(getRef()); + if (DubboStub.class.isAssignableFrom(getInterfaceClass())) { + ServiceDescriptor serviceDescriptor = StubSuppliers.getServiceDescriptor(interfaceName); + setInterface(serviceDescriptor.getInterfaceName()); + serviceMetadata.setServiceInterfaceName(serviceDescriptor.getInterfaceName()); + } serviceMetadata.generateServiceKey(); }