Caused by: java.lang.RuntimeException: Failed to invoke public com.alibaba.fastjson.JSON() with no args
Caused by: java.lang.InstantiationException
这个错误信息表明在使用 JMeter 进行 Dubbo 接口测试时,出现了问题。
可能的原因包括:
1.缺少 Dubbo 相关的 JAR 包:
如果在测试 Dubbo 接口时,没有将 Dubbo 相关的 JAR 包添加到 JMeter 的 classpath 中,就会导致这个错误。
2.Dubbo 接口配置错误:如果 Dubbo 接口的配置不正确,例如 Dubbo 服务的地址或端口设置错误,也可能导致这个错误。
3.Dubbo 版本不兼容:如果 Dubbo 版本与 JMeter 不兼容,也可能导致这个错误。
解决这个问题的方法包括:
1.确认 Dubbo 相关的 JAR 包已经添加到 JMeter 的 classpath 中。
2.检查 Dubbo 接口的配置是否正确,可以参考 Dubbo 的官方文档。
3.确认 Dubbo 的版本与 JMeter 兼容,可以尝试升级 Dubbo 或者使用其他版本的 JMeter。
如果以上方法都无法解决问题,可以尝试使用其他 Dubbo 接口测试工具,例如 Dubbokeeper 或者 Dubbo-go。
你们这个接口的参数就是定义的是 alibaba.fastjson.JSON 吗 很少见这样子的情况。
alibaba.fastjson.JSON 版本对应 jmeter 工具版本不一致导致的
ext 文件夹下,引入对应的 jar 包
你这第三个参数,开发是定义成 alibaba.fastjson.JSON 么?这种不一般是自定义对象名么?cn.com.xxx.scs.api.wms.dto.xxx.StaffMaterialReq
参数类型应该错了,你看下接口的参数定义里,这个参数的类型应该是个自定义的 DTO 之类的。你应该填写的是对应 DTO 的包路径。
比如 public Response addApi(AddApiRequest request) 这个接口,那你参数的类型应该是 AddApiRequest 的包路径:com.xxx.api.dto.request.AddApiRequest
先理解一下 dubbo 是怎么用的,不太可能用 fastjson 的 json 类作为参数调用的。如果是,那么只能说你们公司真是 6。
调用参数的类型应该和你的接口类定义的方法的签名要一样,不是你想要传啥就是啥类型。