ojlm / pea

分布式压测引擎. A distributed stress tool based on gatling
https://asura-pro.github.io/indigo-docs/#/zh-cn/pea/
45 stars 30 forks source link

Dubbo 接口自定义对象响应 cannot be cast to 异常 #9

Open xcorpio opened 4 years ago

xcorpio commented 4 years ago

复现

https://github.com/asura-pro/pea-simulations/blob/master/ext-library/src/main/java/pea/example/ext/dubbo/api/GreetingService.java#L9

异常

HelloResponse 第一次正常, 后续的调用会报 pea.example.ext.dubbo.response.HelloResponse cannot be cast to pea.example.ext.dubbo.response.HelloResponse 这种异常.

这边每次执行会使用自定义的类加载器重载, 可能是 dubbo 生成的动态代理类缓存, 在后续的执行用了缓存的 HelloResponse class, 这时候引擎的该对象的 classloader 和 dubbo 内部的代理对象不一样啦

xcorpio commented 4 years ago

https://github.com/apache/dubbo/issues/5545