make generic invoke work in service test
diff --git a/dubbo-admin-backend/pom.xml b/dubbo-admin-backend/pom.xml
index d2510ae..c9c1a65 100644
--- a/dubbo-admin-backend/pom.xml
+++ b/dubbo-admin-backend/pom.xml
@@ -72,10 +72,10 @@
             <artifactId>dubbo</artifactId>
         </dependency>
 
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-metadata-report-api</artifactId>
-        </dependency>
+        <!--<dependency>-->
+            <!--<groupId>org.apache.dubbo</groupId>-->
+            <!--<artifactId>dubbo-metadata-report-api</artifactId>-->
+        <!--</dependency>-->
 
         <dependency>
             <groupId>org.apache.curator</groupId>
@@ -150,4 +150,4 @@
     </build>
 
 
-</project>
\ No newline at end of file
+</project>
diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/ServiceTestController.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/ServiceTestController.java
index 3ded7c2..a91b49e 100644
--- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/ServiceTestController.java
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/ServiceTestController.java
@@ -14,7 +14,7 @@
 
     @RequestMapping(method = RequestMethod.POST)
     public Object test(@PathVariable String env, @RequestBody ServiceTestDTO serviceTestDTO) {
-        return genericService.invoke(serviceTestDTO.getService(), serviceTestDTO.getMethod(), serviceTestDTO.getTypes(), null);
+        return genericService.invoke(serviceTestDTO.getService(), serviceTestDTO.getMethod(), serviceTestDTO.getTypes(), serviceTestDTO.getParams());
 //        return null;
     }
 }
diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/model/dto/ServiceTestDTO.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/model/dto/ServiceTestDTO.java
index 7934e7c..3979e78 100644
--- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/model/dto/ServiceTestDTO.java
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/model/dto/ServiceTestDTO.java
@@ -4,7 +4,7 @@
     private String service;
     private String method;
     private String[] types;
-    private String params;
+    private Object[] params;
 
     public String getService() {
         return service;
@@ -30,11 +30,11 @@
         this.types = types;
     }
 
-    public String getParams() {
+    public Object[] getParams() {
         return params;
     }
 
-    public void setParams(String params) {
+    public void setParams(Object[] params) {
         this.params = params;
     }
 }
diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/service/impl/GenericServiceImpl.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/service/impl/GenericServiceImpl.java
index 6b6e748..469ec9e 100644
--- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/service/impl/GenericServiceImpl.java
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/service/impl/GenericServiceImpl.java
@@ -37,6 +37,14 @@
 
         reference.setInterface(service);
         GenericService genericService = reference.get();
-        return genericService.$invoke(method, parameterTypes, params);
+        Object result = genericService.$invoke(method, parameterTypes, params);
+        System.out.println(result);
+        return result;
+    }
+
+    public static void main(String[] args) {
+        GenericServiceImpl genericService = new GenericServiceImpl();
+        genericService.init();
+        genericService.invoke("org.apache.dubbo.demo.api.DemoService", "sayHello", new String[]{"java.lang.String"}, new Object[]{"hello"});
     }
 }
diff --git a/dubbo-admin-frontend/src/components/ServiceTest.vue b/dubbo-admin-frontend/src/components/ServiceTest.vue
index b1f05b2..64a5a02 100644
--- a/dubbo-admin-frontend/src/components/ServiceTest.vue
+++ b/dubbo-admin-frontend/src/components/ServiceTest.vue
@@ -18,7 +18,7 @@
   <v-container grid-list-xl fluid>
     <v-layout row wrap>
       <v-flex xs12>
-        <search v-model="filter" label="Search by service name" :submit="search"></search>
+        <search id="serviceSearch" v-model="filter" label="Search by service name" :submit="search"></search>
       </v-flex>
       <v-flex xs12>
         <h3>Methods</h3>
@@ -80,7 +80,7 @@
     name: 'ServiceTest',
     data () {
       return {
-        filter: 'org.apache.dubbo.demo.api.DemoService',
+        filter: '',
         headers: [
           {
             text: 'Method Name',
@@ -115,8 +115,11 @@
     },
     methods: {
       search () {
-        if (this.filter == null) {
-          this.filter = ''
+        if (!this.filter) {
+          this.filter = document.querySelector('#serviceSearch').value.trim()
+          if (!this.filter) {
+            return
+          }
         }
         this.$router.push({
           path: 'test',
@@ -147,7 +150,7 @@
           service: this.service.metadata.canonicalName,
           method: this.modal.method,
           types: this.modal.types,
-          params: JSON.stringify(this.modal.json)
+          params: this.modal.json
         }).then(response => {
           console.log(response)
         })
@@ -162,6 +165,19 @@
         }
       }
     },
+    mounted: function () {
+      let query = this.$route.query
+      let filter = null
+      Object.keys(query).forEach(function (key) {
+        if (key === 'service') {
+          filter = query[key]
+        }
+      })
+      if (filter !== null) {
+        this.filter = filter
+        this.search()
+      }
+    },
     components: {
       JsonEditor,
       Search
diff --git a/dubbo-admin-frontend/src/components/public/JsonEditor.vue b/dubbo-admin-frontend/src/components/public/JsonEditor.vue
index c4cbbf5..82e4d35 100644
--- a/dubbo-admin-frontend/src/components/public/JsonEditor.vue
+++ b/dubbo-admin-frontend/src/components/public/JsonEditor.vue
@@ -25,7 +25,7 @@
   export default {
     name: 'json-editor',
     props: {
-      value: Object,
+      value: Array,
       mode: {
         type: String,
         default: 'tree'