dubbo服务接口开发者必备调试利器,你值得拥有
【本文由“开发辅助”发布,2017年08月23日】自阿里将dubbo开源之后,很多非阿里系的公司开始用起了dubbo框架,目前被广泛使用的应该是当当网在维护的dubbox版本。用过该框架的同学应该都知道dubbo的工作原理,这里就不再赘述。
开发过程中大多数同学可能懒于写单元测试,都是通过启动消费者来进行接口调试。如果开发者自己用虚拟机搭建了zookeeper等dubbo开发所需环境,启动消费者调试服务也是比较方便的;若是所有开发人员共用一个注册中心,这时候启动消费者所消费的服务未必就是自己所提供的,这个时候调试就比较麻烦。要么在dubbo admin管理后台把自己提供的服务进行提权或直接禁用别人提供的服务,要么通过telnet命令调用指定方法。有去dubbo官方看过文档的应该都知道dubbo是支持telnet连接的,可以通过invoke命令调用指定服务。这种方式可以直接调用自己的服务,就是写命令比较麻烦,特别是参数多的接口,写起来就没那么顺手了。下面看下telnet调服务的截图
今天要介绍的不是写测试用例,也不是如何通过telnet来调试服务。今天要说的是作者自己开发的一个专门为dubbo调试而生的辅助工具。先看下界面。下载地址:立即下载
详细使用说明在软件帮助菜单里有,这里再简单介绍一下操作步骤:
- 填写注册中心地址包含端口号,例:192.168.145.131:2181
- 填写服务pom地址,点击浏览选择要调用的接口实现类所有项目的pom文件,例:F:\dubbox-dubbox-2.8.4\dubbo-demo\dubbo-demo-provide\pom.xml
- 点击连接,连接注册中心并获取接口列表
- 从service列表选择要调试的service,若service过多可以通过服务名、应用名或ip筛选出所要的service。点击service后系统通过分析pom文件获取依赖关系,再通过反射获取接口所有暴露的方法及参数名称。对新项目首次进行此操作耗时较久,之后将从缓存获取依赖,因此依赖关系有变更时请点击清空依赖缓存。
- 选择提供者,如果同一注册中心有多个提供者时可以选择需要调用哪个提供者。
- 默认请求超时为5秒,可自行设置
- 从列表中选择要调用的service方法,此时右侧文本区域显示该方法的参数,输入完参数点击调用即可。传参数注意事项:
- .接口单值参数,直接将自动生成的参数名改为参数值
- .若接口有多个参数,参数为复杂对象时,参数多个字段大括号括起来,参数之间逗号隔开。
示例1:
接口:queryPage(Map<String,Object> params,String orderBy);
请求参数配置:
[ {//大括号中内容为params接收的数据 userId:1197264, //map参数键值对格式冒号分隔 userName:’test’ }, 'user_id desc'//第二个单值参数,不需要参数名直接填写参数值 ]
示例2:
接口:cacheUser(User user,Integer index,UserAttr userAttr);
请求参数配置:
[ {//大括号中内容为user接收的数据 userId:1197264, //userId为User的一个属性 userName:’test’ //userName为User的一个属性 }, 1, //第二个单值参数,不需要参数名直接填写参数值 {// 第三个字段userAttr对应参数 address:’福建龙岩上杭’, nickName:’披着羊皮’ } ]
下载地址:立即下载
【本文由“开发辅助”发布,2017年08月23日】
文中没有提到具体怎么操作运行
java -jar 开发辅助.jar 根本运行不了,
2017-08-23 10:54:12,723 INFO [com.lcw.loading.Loading] – 启动页加载耗时:712毫秒
2017-08-23 10:54:13,482 ERROR [com.lcw.util.i] – 查询MAVEN_HOME失败
2017-08-23 10:54:13,492 ERROR [com.lcw.util.h] – D:\software\dvb\conf\setting.xml (系统找不到指定的路径。)
java.io.FileNotFoundException: D:\software\dvb\conf\setting.xml (系统找不到指定的路径。)
at java.io.FileInputStream.open0(Native Method)
……
at com.sun.glass.ui.win.WinApplication.lambda$null$149(Unknown Source)
at java.lang.Thread.run(Unknown Source)
2017-08-23 10:54:13,508 INFO [com.lcw.action.f] – 未找到参数缓存
2017-08-23 10:54:13,511 ERROR [com.lcw.util.h] – D:\software\dvb\conf\httpConfig.xml (系统找不到指定的路径。)
java.io.FileNotFoundException: D:\software\dvb\conf\httpConfig.xml (系统找不到指定的路径。)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(Unknown Source)
at java.io.FileInputStream.(Unknown Source)
您好。这个报错并不影响使用。信息显示您未配置 MAVEN_HOME 这个环境变量。
具体使用方法可以参考帮助文档:http://www.vbox.top/app/help.html
问题集锦:http://www.vbox.top/faq
配置文件样例在哪儿?httpConfig.xml
调用了http接口会自动生成该文件。