【jmeter】dubbo 枚举数据类型

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-04 00:13:58

在使用jmeter编写dubbo压测接口时,发现参数是枚举类型时出现错误
代码中com.lluozh.api.UserProperty,是一个自定义的枚举类,该枚举有3个值:PHONE、SMS、EMAIl

2020-03-03 20:01:55,635 ERROR i.g.n.j.p.d.s.DubboSample: Exception:
org.apache.dubbo.rpc.RpcException: Failfast invoke providers
dubbo://172.30.178.7:20880/com.xxx.xxx.api.service.xxxxApiService

枚举类型数据比较特殊,是否因为请求参数的格式问题导致,修改请求参数格式如下
在这里插入图片描述
报错误

2020-03-03 20:23:26,913 ERROR i.g.n.j.p.u.JsonUtils: json to class[sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl] is error!
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $

那paramValue不能为string类型,那应该什么样的格式呢?查找网上解决方式,发现有提到说枚举不是一个类,需要格式为:

{
	"UserProperty""PHONE"
}

仍然失败

没办法了,只能看看git上是否有其他人提及这个问题

给出了两种不同的方式
在这里插入图片描述

并且在1.3.8或者2.7.5版本中已经解决了这个问题
在这里插入图片描述
在git中下载对应版本的jar包,成功替换后,发现并没有给出具体的使用例子,OMG!!!
在这里插入图片描述
尝试原来的{"UserProperty":"PHONE"},发现依然失败
那通过源码吧,看看dubbo中的invoke源码: InvokeTelnetHandler
在这里插入图片描述
跟踪源码到 :PojoUtils
在这里插入图片描述
param的格式如下
在这里插入图片描述
调试,解决问题!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!