品牌网站建设d小蝌蚪,网站推广填空题,wordpress备案信息修改,网站建设金手指排名霸屏问题#xff1a;在使用dubbo 2.5.3之前的版本Service来发布服务时#xff0c;当该服务中有Transactional,是无法正常发布的?
解决方案#xff1a; 因为事务TransactionManagement默认是使用了jdk的代理即基于接口的代理#xff0c;必须改成基于类的代理#xff0c;servi…问题在使用dubbo 2.5.3之前的版本Service来发布服务时当该服务中有Transactional,是无法正常发布的?
解决方案 因为事务TransactionManagement默认是使用了jdk的代理即基于接口的代理必须改成基于类的代理service才会生效所以必须修改代理方式如果是javaconfig来配置加上EnableTransactionManagement(proxyTargetClasstrue)如果是xml配置tx:annotation-driven transaction-manager“transactionManager” proxy-target-class“true” /。 进行了第一步之后发现仍然不能发布服务因为dubbo的Service源码Inherited所以没有是不能被代理类继承的所以还需要修改dubbo Service的源码在annotation上加入Inherited这样代理类就会继承了这个注解。注:目前dubbo的master的分支已经修复了这个问题但是没有发正式的版本。 虽然已经发布了但是会发现发布的服务是spring的代理SpringProxy可以通过dubbo-admin看到或者启动日志不是你想要的无法正常引用因为必须在Service中指定interfaceName,指定发布的服务的名称例Service(version “1.0.0”,interfaceName “com.zl.dubbotest.api.HelloService”)