jax-rs ResponseFilter中引发的异常不会导致回滚

问题描述 投票:0回答:1

我正在努力对容器管理的交易进行自动回滚。我知道抛出异常时应该自动发生,但是以某种方式却没有发生。

要清楚,我有一个JAX-RS ContainerResponseFilter,它会抛出某种RuntimeException(我不能抛出一个检查异常,因为那意味着我需要指定“ throws”,这无法完成)在一种实现方法上)。

[当我自己打电话给sessionContext.setRollbackOnly()时,交易确实回滚了,但我真的不想自己处理。

我尝试将异常标记为@ApplicationException(rollback=true),但这没有什么区别。

有什么想法吗?这是在带有RestEasy的JBOSS 7.2上。

java transactions jax-rs resteasy
1个回答
0
投票

我无法确认这是预期的行为,但是ContainerReponseFilter中的任何手动回滚都为时已晚,因为该事务已经提交。

为了解决问题,我重新设计了解决方案,以使用Ìntegercepter@AroundInvoke内部抛出异常。这似乎是时候进行自动回滚了,我可以避免在ContainerResponseFilter

中抛出更多的异常。
© www.soinside.com 2019 - 2024. All rights reserved.