This is an automated email from the ASF dual-hosted git repository.

huxing pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-ops.git


The following commit(s) were added to refs/heads/master by this push:
     new ae42777  Fix 404 issue #59 (#63)
ae42777 is described below

commit ae427775fe3af1e014501199dc1e57b824a60686
Author: min <[email protected]>
AuthorDate: Mon Jul 9 15:40:34 2018 +0800

    Fix 404 issue #59 (#63)
---
 .../dubboadmin/governance/util/WebConstants.java   |  2 +
 .../dubboadmin/web/mvc/RouterController.java       | 62 ++++++++++++++--------
 2 files changed, 43 insertions(+), 21 deletions(-)

diff --git 
a/dubbo-admin/src/main/java/com/alibaba/dubboadmin/governance/util/WebConstants.java
 
b/dubbo-admin/src/main/java/com/alibaba/dubboadmin/governance/util/WebConstants.java
index fb1648d..c08f405 100644
--- 
a/dubbo-admin/src/main/java/com/alibaba/dubboadmin/governance/util/WebConstants.java
+++ 
b/dubbo-admin/src/main/java/com/alibaba/dubboadmin/governance/util/WebConstants.java
@@ -71,6 +71,8 @@ public class WebConstants {
         mapper.put("loadbalances", "loadbalancesController");
         mapper.put("owners", "ownersController");
         mapper.put("weights", "weightsController");
+        mapper.put("addresses", "addressesController");
+        mapper.put("services", "servicesController");
     }
 
 
diff --git 
a/dubbo-admin/src/main/java/com/alibaba/dubboadmin/web/mvc/RouterController.java
 
b/dubbo-admin/src/main/java/com/alibaba/dubboadmin/web/mvc/RouterController.java
index 0c01951..adf04d3 100644
--- 
a/dubbo-admin/src/main/java/com/alibaba/dubboadmin/web/mvc/RouterController.java
+++ 
b/dubbo-admin/src/main/java/com/alibaba/dubboadmin/web/mvc/RouterController.java
@@ -20,9 +20,7 @@ package com.alibaba.dubboadmin.web.mvc;
 import java.lang.reflect.Method;
 import java.util.Map;
 
-import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletRequestWrapper;
 import javax.servlet.http.HttpServletResponse;
 
 import com.alibaba.dubboadmin.SpringUtil;
@@ -77,7 +75,7 @@ public class RouterController {
     public String addressRouter(@PathVariable("ip") String ip, 
@PathVariable("type") String type,
                                 HttpServletRequest request, 
HttpServletResponse response, Model model) {
         model.addAttribute("address", ip);
-        return appRouter(null, null, type, request, response, model);
+        return appRouter(null, "addresses", ip, type, request, response, 
model);
     }
 
     
@RequestMapping("/governance/addresses/{ip:[0-9.]+:?[0-9]+}/{type}/{action}")
@@ -85,7 +83,7 @@ public class RouterController {
                                       @PathVariable("action") String action, 
HttpServletRequest request,
                                       HttpServletResponse response, Model 
model) {
         model.addAttribute("address", ip);
-        return appAction(params, null, null, type, action, request, response, 
model);
+        return appAction(params, null, "addresses",ip, type, action, request, 
response, model);
     }
 
     
@RequestMapping("/governance/addresses/{ip:[0-9.]+:?[0-9]+}/{type}/{id}/{action}")
@@ -102,7 +100,7 @@ public class RouterController {
     public String servicerRouter(@PathVariable("service") String service, 
@PathVariable("type") String type,
                                  HttpServletRequest request, 
HttpServletResponse response, Model model) {
         model.addAttribute("service", service);
-        return appRouter(null, service, type, request, response, model);
+        return appRouter(null, "services", service, type, request, response, 
model);
     }
 
     @RequestMapping("/governance/services/{service}/{type}/{action}")
@@ -115,7 +113,7 @@ public class RouterController {
             System.out.println("value: " + entry.getValue());
         }
         model.addAttribute("service", service);
-        return appAction(param, null, service, type, action, request, 
response, model);
+        return appAction(param, null, "services", service, type, action, 
request, response, model);
     }
 
     @RequestMapping("/governance/services/{service}/{type}/{id}/{action}")
@@ -146,17 +144,18 @@ public class RouterController {
     //    return "";
     //}
 
-    @RequestMapping("/governance/applications/{app}/services/{service}/{type}")
-    public String appRouter(@PathVariable("app") String app, 
@PathVariable("service") String service,
-                            @PathVariable("type") String type, 
HttpServletRequest request,
+    
@RequestMapping("/governance/applications/{app}/{elements}/{element}/{type}")
+    public String appRouter(@PathVariable("app") String app, 
@PathVariable("elements") String elements,
+                            @PathVariable("element") String element, 
@PathVariable("type") String type,
+                            HttpServletRequest request,
                             HttpServletResponse response, Model model) {
         if (app != null) {
             model.addAttribute("app", app);
         }
-        if (StringUtils.isNumeric(service)) {
+        if (StringUtils.isNumeric(element)) {
             //service action, shield, recover..
             Long[] ids = new Long[1];
-            ids[0] = Long.valueOf(service);
+            ids[0] = Long.valueOf(element);
             model.addAttribute("service", request.getParameter("service"));
             try {
                 Method m = 
servicesController.getClass().getDeclaredMethod(type, Long[].class, 
HttpServletRequest.class,
@@ -167,8 +166,10 @@ public class RouterController {
                 e.printStackTrace();
             }
         }
-        if (service != null) {
-            model.addAttribute("service", service);
+        if (elements.equals("services")) {
+            model.addAttribute("service", element);
+        } else if (elements.equals("addresses")) {
+            model.addAttribute("address", element);
         }
 
         String name = WebConstants.mapper.get(type);
@@ -188,24 +189,43 @@ public class RouterController {
         return "";
     }
 
-    @RequestMapping("/governance/applications/{app}/services")
-    public String appWithService(@PathVariable("app") String app, 
HttpServletRequest request,
+    @RequestMapping("/governance/applications/{app}/{type}")
+    public String appWithService(@PathVariable("app") String app, 
@PathVariable("type") String type,
+                                 HttpServletRequest request,
                                  HttpServletResponse response,
                                  Model model) {
         model.addAttribute("app", app);
-        return servicesController.index(request, response, model);
+        String name = WebConstants.mapper.get(type);
+        if (name != null) {
+            Object controller = SpringUtil.getBean(name);
+            try {
+                Method index = 
controller.getClass().getDeclaredMethod("index", HttpServletRequest.class,
+                    HttpServletResponse.class, Model.class);
+                Object result = index.invoke(controller, request, response, 
model);
+                return (String) result;
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+
+        }
+        return "";
     }
 
 
-    
@RequestMapping("/governance/applications/{app}/services/{service}/{type}/{action}")
+    
@RequestMapping("/governance/applications/{app}/{elements}/{element}/{type}/{action}")
     public String appAction(@RequestParam Map<String, String> params, 
@PathVariable("app") String app,
-                            @PathVariable("service") String service, 
@PathVariable("type") String type,
-                            @PathVariable("action") String action, 
HttpServletRequest request,
-                            HttpServletResponse response, Model model) {
+                            @PathVariable("elements") String elements, 
@PathVariable("element") String element,
+                            @PathVariable("type") String type, 
@PathVariable("action") String action,
+                            HttpServletRequest request, HttpServletResponse 
response, Model model) {
         if (app != null) {
             model.addAttribute("app", app);
         }
-        model.addAttribute("service", service);
+        if (elements.equals("services")) {
+            model.addAttribute("service", element);
+        } else if (elements.equals("addresses")) {
+            model.addAttribute("address", element);
+        }
+
         String name = WebConstants.mapper.get(type);
         if (name != null) {
             Object controller = SpringUtil.getBean(name);

Reply via email to