在项目里, 我使用了
@Service
@Transactional
@com.alibaba.dubbo.config.annotation.Service
public class SUserJpushServiceImp
的形式, 来暴露服务。但是在发布服务的时候, interface class 是通过
serviceConfig.setInterface(bean.getClass().getInterfaces()[0]);
的形式获取, 刚好, 我的service都使用了@Transactional注解, 对象被代理了。所以获取到的interface是Spring的代理接口...
找到一个解决方案:
serviceConfig.setInterface(AopUtils.getTargetClass(bean).getClass().getInterfaces()[0]);