3

我想结合 Jersey 资源来实现每个请求的事务。我的意思是我想要一个管理交易的地方,比如:

try {
  chain.doFilter(request, response);
  commitSession();
} finally {
  rollbackSession(); // no-op if already committed
  closeSession();
}      

过去,我用 Servlet 过滤器做过类似的事情,但这在 Jersey 中行不通。在 Jersey 中,在 web 容器过滤器重新获得控制权之前,异常被拦截并转换为 500 长。我想我可以坚持使用过滤器方法,并检查响应代码,但这不是很吸引人。我已经看到了一些关于此的 对话,但我一直无法使用 ResourceFilter、CloseableService 或 ServletContainer 等提出可靠的方法。到目前为止,我糟糕的解决方案是实现自定义 ExceptionMapper 并执行回滚那里。有没有人干净地解决了这个问题?

免责声明 - 这个项目目前不使用 Spring,所以对于这个小用例,我宁愿避免使用它。

4

1 回答 1

1

没有泽西之爱,嗯?

http://markmail.org/thread/orcctyu7hczx3d5w

于 2010-04-21T21:06:21.960 回答