1

我正在尝试获取一个 Spring MVC 控制器方法,如果在方法返回之前将网络电缆拉入客户端,则该方法已使用 @Transactional 注释以回滚,我似乎无法让它工作,这是一个示例我正在努力实现的目标。

@Transactional(rollbackFor = IOException.class)
@RequestMapping(value = "/test")
public @ResponseBody
Integer testMethod(HttpServletResponse response) throws Exception {
    LOG.debug("Put breakpoint here, and pull network cable on client...");
    //IMHO this should throw an IOException, but it isn't doing?
    response.getOutputStream();

    return 10;
}

因此,如果我在日志记录语句上设置断点,然后拔下客户端上的网线然后播放,我预计会从 response.getOutputStream() 获得 IOException,但事实并非如此,任何帮助将不胜感激?

4

1 回答 1

4

不要使控制器具有事务性。事务用于服务层。一种常见的做法是有一个基本控制器,其他控制器扩展并包含错误处理 - 在这种情况下可以返回不同的异常消息。

您正在拔下客户端上的网络电缆,并期望服务器上出现异常?这没有意义。

于 2013-09-05T13:02:39.163 回答