spring添加事务后的问题.

[code="java"]
[color=red]apiManager.saveUserInfo(user, userInfo, userindex);[/color]

        json.put("error_code", Constants.REQUEST_SUCCESS);
        json.put("error_message", "注册成功!");

    } catch (Exception e) {
        json.put("error_code", Constants.REQUEST_ERROR);
        json.put("error_message", "注册失败!");
        logger.error("注册发生异常!", e);
    }
    AjaxOut.responseText(response, json.toString());

[/code]

红色部分添加上事务后. action中的该方法就不会response了... 删掉事务的话就好了.

[code="java"]
@Transactional(propagation=Propagation.REQUIRED)
public void saveUserInfo(User user,Userinfo info, Userindex userindex) throws Exception {
userindexDao.save(userindex);
ContextHolder.setRead(user.getUserid());

userDao.save(new User());
userinfoDao.save(info);
}
[/code]

[color=red]事务测试均正常. 回滚什么的. 目前问题就是添加失败或成功后 action中不会response[/color]
请教!

5个回答

检查访问的域 看是localhost 还是 ip

是否有错误日志显示,如果没有,那就只好断点调试,看看程序是否运行到:
[code="java"]AjaxOut.responseText(response, json.toString()); [/code]
这一段,如果程序正常进入AjaxOut.responseText方法,那么问题应该就处在这个方法里面,具体跟踪一下。

[quote]apiManager.saveUserInfo(user, userInfo, userindex);[/quote]

断点看下!这个方法是否已经返回!或者已经执行完了!
debug 一下就知道 哪不对了!
祝你好运! :idea:

首先明确是:action中方法的返回与调用的方法是否是以事务的方式执行没有直接的关联。
应该是其他地方所导致的这个问题,楼主可以调试一下,在事务的方式下执行,能够走到
[code="java"]AjaxOut.responseText(response, json.toString());[/code]这一步。
可以通过http的工具查看是否真的没有数据返回(推荐fiddler,或者firefox下的httpfox插件)

不明白,我当初用到json的时候碰到一个问题:如果级联的东西,查询的时候没有取出来,json那边会出错,但是不会报错,用junit测试的时候可以报出错误。。不知道啥原因。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问