Thomas Chen

Results 15 comments of Thomas Chen

@liufeiyu1002 @AlbumenJ @lixiaojiee https://github.com/cwt9562/dubbo-privider-confusion 我基于官方的spring boot demo, 复现了 你们看下

启动provider后, 再启动comsumer 就会得到 Caused by: org.apache.dubbo.common.bytecode.NoSuchMethodException: Not found method "sayHello" in class org.apache.dubbo.springboot.demo.provider.AnotherServiceImpl.

> > 启动provider后, 再启动comsumer 就会得到 Caused by: org.apache.dubbo.common.bytecode.NoSuchMethodException: Not found method "sayHello" in class org.apache.dubbo.springboot.demo.provider.AnotherServiceImpl. > > 看了下,出现问题是由于您自定义的一个拦截器里又调了一次dubbo方法,如下图: 根本问题是在调用这个方法结束后,RpcContext里面的SERVICE_CONTEXT没有做清理,导致在继续执行调用DemoService的sayHello方法客户端逻辑时读取了已经过期的缓存(attachments.path=org.apache.dubbo.springboot.demo.AnotherService),而服务端正是通过这个path值定位服务端骨架的。感兴趣的话,您可以提个pr修复这个问题。 我对源码真不熟悉,哈哈哈,提不了 我的demo能帮忙定位到问题就好

我的意思是 UserApplicationService里的部分查询方法,自身实现就自动调用cacheCenter里的部分缓存

我举个例子 com.agileboot.domain.system.user.UserApplicationService#getUserProfile 这个方法,就没有读取缓存 ``` public UserProfileDTO getUserProfile(Long userId) { SysUserEntity userEntity = userService.getById(userId); SysPostEntity postEntity = userService.getPostOfUser(userId); SysRoleEntity roleEntity = userService.getRoleOfUser(userId); return new UserProfileDTO(userEntity, postEntity, roleEntity); } ``` 而它又被/system/user/profile接口调用了 com.agileboot.admin.controller.system.SysProfileController#profile...