87 Star 402 Fork 286

许雪里 / xxl-rpc

 / 详情

后端事物开启@Transactional报错

已完成
创建于  
2015-12-26 16:18

后端spring增加事物处理的时候会套用事物处理的自动代理,导致获取到的对象不对,这个问题虽然可以获取底层对象,但是事物处理会失效吧,以下是我修改的代码```
这里输入代码

NetComServerFactory
@Override
	public void setApplicationContext(ApplicationContext applicationContext)
			throws BeansException {
		Map<String, Object> serviceBeanMap = applicationContext.getBeansWithAnnotation(SkeletonService.class);
		if (serviceBeanMap!=null && serviceBeanMap.size()>0) {
            for (Object serviceBean : serviceBeanMap.values()) {
            	//判断是否获取到了代理对象
            	if(serviceBean.getClass().getAnnotation(SkeletonService.class)==null){
					try {
						Object target=getTarget(serviceBean);
						String interfaceName = target.getClass().getAnnotation(SkeletonService.class).stub().getName();
						logger.debug("放入对象======="+interfaceName);
						serviceMap.put(interfaceName, target);
					} catch (Exception e) {
						logger.debug("获取代理对象异常======="+e);
						e.printStackTrace();
					}
            	}else{
            		String interfaceName=serviceBean.getClass().getAnnotation(SkeletonService.class).stub().getName();
            		serviceMap.put(interfaceName, serviceBean);
            	}
            }
        }
	}

评论 (3)

可否将你报错的代码邮件给我,稍后我本地重现测试下。

感谢你提供的BUG,该BUG我已经修复掉并且在commit中备注了BUG提供人的信息,请查看并测试确认,如果有新问题可以继续邮件我。【经过我查阅资料和实际测试,该BUG(事务代理导致注解服务注册失败)在dubbo中也存在,但是dubbo已经停止更新,否则我推荐你也向dubbo推送该bug】

状态更改为 已关闭

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
378604 xuxueli0323 1578922035 1421 634118906 1578914015
Java
1
https://gitee.com/xuxueli0323/xxl-rpc.git
git@gitee.com:xuxueli0323/xxl-rpc.git
xuxueli0323
xxl-rpc
xxl-rpc

搜索帮助