在Spring AOP代理过的对象上支持dubbo annotation配置事物失效问题

在Spring AOP代理过的对象上支持dubbo annotation配置

dubbo annotation方式配置 在A.insert服务中有两个@resource注入的service.insert 第二个inert报错,期望两个service操作回滚,使用xml申明式事物,实际没有回滚,dubbo改成xml配置,正常回滚。

整理了testcase:https://pan.baidu.com/s/1sZG9tsUTQQvlE2fFqnsQeQ

1、解决方案:1.1、dubbo 2.5.9 解决了。1.2、修改成xml配置。 1.3、新增中间一层接口实现类调用。
2、但是 dubbo 2.6.0 问题依旧存在 打印日志如,发布的服务接口为SpringProxy ,之前的版本也有此问题,由于不想每次注解中指定接口名称,于是修改了如下:
//修复 代理类发布的服务接口为 SpringProxy
Class<?> clazz = bean.getClass();
if (org.springframework.aop.support.AopUtils.isAopProxy(bean)) {
clazz = org.springframework.aop.support.AopUtils.getTargetClass(bean);
}
serviceConfig.setInterface(clazz.getInterfaces()[0]);
[com.alibaba.dubbo.registry.integration.RegistryProtocol]- [DUBBO] subscribe url: provider://192.168.2.77:20880/org.springframework.aop.SpringProxy?anyhost=true&application=dubbo-rss-provider&category=configurators&check=false&default.delay=-1&default.retries=0&default.timeout=60000&delay=-1&dubbo=2.6.0&generic=false&interface=org.springframework.aop.SpringProxy&methods=&pid=10752&revision=4.2.5.RELEASE&side=provider&timestamp=1521424569991&version=1.0.0, override urls: [empty://192.168.2.77:20880/org.springframework.aop.SpringProxy?anyhost=true&application=dubbo-rss-provider&category=configurators&check=false&default.delay=-1&default.retries=0&default.timeout=60000&delay=-1&dubbo=2.6.0&generic=false&interface=org.springframework.aop.SpringProxy&methods=&pid=10752&revision=4.2.5.RELEASE&side=provider&timestamp=1521424569991&version=1.0.0], dubbo version: 2.6.0, current host: 127.0.0.1
[com.alibaba.dubbo.config.model.ApplicationModel]- [DUBBO] already register the provider service: org.springframework.aop.SpringProxy:1.0.0, dubbo version: 2.6.0, current host: 127.0.0.1

3、2.6.1 启动报错
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/curator/RetryPolicy
at com.alibaba.dubbo.remoting.zookeeper.curator.CuratorZookeeperTransporter.connect(CuratorZookeeperTransporter.java:26)
at com.alibaba.dubbo.remoting.zookeeper.ZookeeperTransporter$Adaptive.connect(ZookeeperTransporter$Adaptive.java)
at com.alibaba.dubbo.registry.zookeeper.ZookeeperRegistry.(ZookeeperRegistry.java:69)
at com.alibaba.dubbo.registry.zookeeper.ZookeeperRegistryFactory.createRegistry(ZookeeperRegistryFactory.java:37)
at com.alibaba.dubbo.registry.support.AbstractRegistryFactory.getRegistry(AbstractRegistryFactory.java:95)
at com.alibaba.dubbo.registry.RegistryFactory$Adaptive.getRegistry(RegistryFactory$Adaptive.java)
at com.alibaba.dubbo.registry.integration.RegistryProtocol.getRegistry(RegistryProtocol.java:200)
at com.alibaba.dubbo.registry.integration.RegistryProtocol.export(RegistryProtocol.java:134)
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper.export(ProtocolFilterWrapper.java:91)
at com.alibaba.dubbo.rpc.protocol.ProtocolListenerWrapper.export(ProtocolListenerWrapper.java:54)
at com.alibaba.dubbo.qos.protocol.QosProtocolWrapper.export(QosProtocolWrapper.java:54)
at com.alibaba.dubbo.rpc.Protocol$Adaptive.export(Protocol$Adaptive.java)
at com.alibaba.dubbo.config.ServiceConfig.doExportUrlsFor1Protocol(ServiceConfig.java:505)
at com.alibaba.dubbo.config.ServiceConfig.doExportUrls(ServiceConfig.java:357)
at com.alibaba.dubbo.config.ServiceConfig.doExport(ServiceConfig.java:316)
at com.alibaba.dubbo.config.ServiceConfig.export(ServiceConfig.java:215)
at com.alibaba.dubbo.config.spring.ServiceBean.onApplicationEvent(ServiceBean.java:121)
at com.alibaba.dubbo.config.spring.ServiceBean.onApplicationEvent(ServiceBean.java:50)



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值