Spring事务引发dubbo服务注册问题

文章清单

1. 问题

2. 查找bug过程

3. 解决方案

 

 

使用spring boot+dubbo写项目,一个服务,之前是正常的,后来调用方出现空指针异常,第一反应提供方出了问题。

 

1. 看控制台,服务方没有抛异常,重启调用方依旧空指针异常

2. 重启服务,dubbo控制台显示服务没有注册上

3. 修改配置文件,修改依赖,但是spring boot使用dubbo只需要一个starter依赖以及几行配置,未果

4. 重新写一个demo,服务注册正常,其他服务也正常,排除zookeeper问题

5. 把异常服务中的service类复制到demo中,demo引入interface依赖,删除demo中原有的service类,启动发现服务未注册

 

定位至service类的问题,突然想起来之前可用的时候没有加@Transactional注解,删除,服务注册正常。

应该是@Transactional标识的类会被spring代理,导致dubbo没有扫描到service,然后我尝试了把@Transactional放在方法上,问题又出现了

 

解决方案:

1. 参加这篇文章,修改dubbo源码,给@Service注解添加@Inhreted使其能被继承,并在使用时添加 interfaceName属性

http://blog.csdn.net/verne_feng/article/details/53022088

2. 写两个类,分别用于实现接口和发布服务

posted @ 2018-03-13 10:11  风邪取鸟  阅读(458)  评论(0编辑  收藏  举报