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'