工作中有时想直接在linux环境下测试Dubbo接口,可直接使用命令,很方便,请看下面:
1、连接:telnet ip 端口,如:telnet 127.0.0.1 23890
2、调用:invoke 完整包名.接口名.方法名(json格式参数),如
invoke com.xxx.ClassName.MethodName(1)
invoke com.xxx.ClassName.MethodName('1')
invoke com.xxx.ClassName.MethodName({"id":2016020201809846})
更新:
Dubbo升级后,版本2.5.6后,如果参数是对象,需要在JSON里面放入class参数
如:invoke com.xxx.ClassName.MethodName({"class":"com.lushwe.User","id":2016020201809846})
否则,会报错:No such method MethodName in service com.xxx.ClassName
2021.7.7 更新:
如果对象里面还有对象(或者有泛型),可能会报转换对象出错,dubbo默认会序列化为JSONObject对象,里面也指定class即可,如:
invoke com.xxx.ClassName.MethodName({"class":"com.lushwe.User","id":2016020201809846,"ext":{"class":"com.lushwe.UserExt","id":2016020201809846}})