TECH NOTES / 开发工具

Dubbo invoke 命令使用

原笔记 2022-06-30 · 整理于 2026-10-05

在本地测试环境通过 Dubbo 控制台调用服务,整理对象参数与 class 提示用法。

首先使用telnet命令进入控制台

命令:telnet ip 端口

例如你的如果dubbo.protocol.port=29952

那么就是 telnet localhost 29952

然后使用invoke命令注入:

如果注入的是json

那就直接传入json串就ok了,如果是基础数据类型,也可以分别对应参数直接传

invoke XxxService.xxxMethod({"prop": "value"}, 1, "1")

text
invoke com.example.UserService.findById(1)

如果注入的参数是对象(com.example.PageSearchVO。具体的方法名: selectCustomerDataFromMysql(PageSearchVO var1)

对象PageSearchVO:

java
public class PageSearchVO implements Serializable {
    private String version = "1.0";
    private Integer size = 100000;
    private Integer pageNum;
    private Integer groupId;

    //getter  setter方法
}

我们也是按照json的格式传,只不过在每个对象后都需要指定具体的这个对象具体所属的类型。

invoke XxxService.selectCustomerDataFromMysql({"version":"1.0","size":100, "pageNum":1, "groupId":1,"class":"com.example.PageSearchVO"})

dubbo官网invoke文档:

invoke

invoke XxxService.xxxMethod(1234, "abcd", {"prop" : "value"}): 调用服务的方法

invoke com.xxx.XxxService.XxxService.xxxMethod(1234, "abcd", {"prop" : "value"}): 调用全路径服务的方法

invoke xxxMethod(1234, "abcd", {"prop" : "value"}): 调用服务的方法(自动查找包含此方法的服务)

invoke xxxMethod({"name":"zhangsan","age":12,"class":"org.apache.dubbo.qos.legacy.service.Person"}):当有参数重载,或者类型转换失败的时候,可以通过增加class属性指定需要转换类

当参数为Map<Integer,T>,key的类型为Integer时,建议指定类型。例如invoke com.xxx.xxxApiService({"3":0.123, "class":"java.util.HashMap"})

文章配图