Open xcorpio opened 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 这种异常.
HelloResponse
pea.example.ext.dubbo.response.HelloResponse cannot be cast to pea.example.ext.dubbo.response.HelloResponse
这边每次执行会使用自定义的类加载器重载, 可能是 dubbo 生成的动态代理类缓存, 在后续的执行用了缓存的 HelloResponse class, 这时候引擎的该对象的 classloader 和 dubbo 内部的代理对象不一样啦
https://github.com/apache/dubbo/issues/5545
复现
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 内部的代理对象不一样啦