项目原先使用xml发布dubbo服务,后来改成标注形式的时候发现,provider始终无法正确发布。
原因
service的bean被事务代理了,用的是cglib,而cglib产生的代理类为子类,@Service标签位于其父类上,也就是未被代理的原类,项目启动时寻找的是代理类,类上没有@Service标注所以发布失效。
解决办法
1.用xml形式发布服务
2.修改dubbo源码,参考https://blog.youkuaiyun.com/verne_feng/article/details/53022088
探讨了从XML配置切换到注解方式发布Dubbo服务时遇到的问题,深入解析了@Service注解位置不当导致的服务发布失败原因,并提供了两种解决方案:一是回退至XML配置;二是修改Dubbo源码。
924

被折叠的 条评论
为什么被折叠?



