我想与Jersey资源一起实现每个请求的事务。通过这种方式,我只是想要一个地方来管理交易,例如:
try {
chain.doFilter(request, response);
commitSession();
} finally {
rollbackSession(); // no-op if already committed
closeSession();
}
在过去,我使用Servlet过滤器做了类似的事情,但这在泽西岛不起作用。在泽西岛,拦截例外并在网箱容器过滤器重新获得控制之前转换为500长。我想我可以坚持使用Filter方法,并检查响应代码,但这不是很吸引人。我已经看到了couple conversations这个问题,但是我一直无法使用ResourceFilter,CloseableService或ServletContainer等提出一个可靠的方法。到目前为止,我的可怕解决办法是实现自定义ExceptionMapper并在那里执行回滚。有人干净利落地解决了这个问题吗?
免责声明 - 此项目目前不使用Spring,所以我宁愿避免使用Spring。