telnet调用Dubbo接口的坑
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了telnet调用Dubbo接口的坑相关的知识,希望对你有一定的参考价值。
参考技术A 通过telnet命令,去调⽤使用了dubbo框架的查询订单接口,一直调用出错, 查询后台⽇志,发现uAccount字段没有传递过去,为null。通过telnet命令调用的dubbo接口,会在InvokeTelnetHandler将json字符串转换为对应的请求参数对象,在95行中,通过PojoUtils.realize()方法进行转换。
在PojoUtils中,主要是通过realize0这个方法进行反序列化,在438和439来获取属性的set方法或者直接获取这个属性,然后在下面调用反射调用set方法或者直接通过反射赋值。
获取set方法的时候,把set紧跟的这个字符转换成了大写,也就是setUAccount,咱们通过idea自动生成get/set方法,像这种类型(小写开头,紧跟大写字母)产生的get/set后面紧跟的第一个字母都是小写字母,所以就获取不到set方法了。
getField方法中,由于咱们设置的属性一般都private属性的,所有这里通过class.getField()和class.getFields()都获取不到。
通过dubbo接口调用时,会通过序列化组件将请求对象通过指定的协议(默认hessian2)转换为二进制,此方式转化时不会出现以上问题。
命令行调用dubbo远程服务
学习了:https://www.cnblogs.com/rwxwsblog/p/6367251.html
先telnet IP port
然后再ls
然后再 invoke class.Method(param)
学习了: https://blog.csdn.net/u011734144/article/details/53068480
还有count,status命令;
学习了:https://www.cnblogs.com/feiqihang/p/4387330.html 这个猛
找到官网链接:http://alibaba.github.io/dubbo-doc-static/Telnet+Command+Reference-zh-showComments=true&showCommentArea=true.htm
可以使用help进行帮助的查看;
ps, pwd, cd, log, status, trace等命令;
对于数组可以使用[{"a":1}]来进行模拟;
以上是关于telnet调用Dubbo接口的坑的主要内容,如果未能解决你的问题,请参考以下文章
开源一款超实用的 Dubbo 测试工具,已用半年,感觉很有feel~
开源一款超实用的 Dubbo 测试工具,已用半年,感觉很有feel~
Dubbo接口测试Dubbo接口调用Jmeter调用Dubbo接口,Jmeter测试Dubbo接口