服务调试bugfix:注册中心使用nacos,并且namespace不是public默认值时,调试找不到服务的问题 (#763)

* 服务调试bugfix:注册中心使用nacos,并且namespace不是public默认值时,调试找不到服务的问题

* 服务调试缓存

* Revert "服务调试缓存"

This reverts commit 6f5099fd

Co-authored-by: maosheng.zms <maosheng.zms@alibaba-inc.com>
diff --git a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/service/impl/GenericServiceImpl.java b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/service/impl/GenericServiceImpl.java
index 4677b71..8fe492c 100644
--- a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/service/impl/GenericServiceImpl.java
+++ b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/service/impl/GenericServiceImpl.java
@@ -17,7 +17,9 @@
 
 package org.apache.dubbo.admin.service.impl;
 
+import org.apache.dubbo.admin.common.util.Constants;
 import org.apache.dubbo.admin.common.util.Tool;
+import org.apache.dubbo.common.URL;
 import org.apache.dubbo.config.ApplicationConfig;
 import org.apache.dubbo.config.ReferenceConfig;
 import org.apache.dubbo.config.RegistryConfig;
@@ -38,15 +40,28 @@
 
     @PostConstruct
     public void init() {
-        RegistryConfig registryConfig = new RegistryConfig();
-        registryConfig.setAddress(registry.getUrl().getProtocol() + "://" + registry.getUrl().getAddress());
-        registryConfig.setGroup(registry.getUrl().getParameter("group"));
+        RegistryConfig registryConfig = buildRegistryConfig(registry);
 
         applicationConfig = new ApplicationConfig();
         applicationConfig.setName("dubbo-admin");
         applicationConfig.setRegistry(registryConfig);
     }
 
+    private RegistryConfig buildRegistryConfig(Registry registry) {
+        URL fromUrl = registry.getUrl();
+
+        RegistryConfig config = new RegistryConfig();
+        config.setGroup(fromUrl.getParameter("group"));
+
+        URL address = URL.valueOf(fromUrl.getProtocol() + "://" + fromUrl.getAddress());
+        if (fromUrl.hasParameter(Constants.NAMESPACE_KEY)) {
+            address = address.addParameter(Constants.NAMESPACE_KEY, fromUrl.getParameter(Constants.NAMESPACE_KEY));
+        }
+
+        config.setAddress(address.toString());
+        return config;
+    }
+
     public Object invoke(String service, String method, String[] parameterTypes, Object[] params) {
 
         ReferenceConfig<GenericService> reference = new ReferenceConfig<>();
@@ -73,7 +88,7 @@
      *
      * @param parameterTypes
      */
-    private void removeGenericSymbol(String[] parameterTypes){
+    private void removeGenericSymbol(String[] parameterTypes) {
         for (int i = 0; i < parameterTypes.length; i++) {
             int index = parameterTypes[i].indexOf("<");
             if (index > -1) {