服务调试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) {