使用 camel-jpa 和 JTA 事务时的异常"Unable to commit: transaction marked for rollback"



我目前正在编写一个教程,展示Karaf上的camel-jpa和JTA事务。我使用以下路线:

来自("jpa://net.lr.tutorial.karaf.camel.jpa2jms.model.Person").id("jpa2jms").transacted().封送(df).bean(new ExceptionDecider()).to("jms:person");

因此,我通过在ExceptionDecider中抛出异常来检查事务是否有效。当我这样做时,我会得到以下异常:

https://gist.github.com/3150591

你知道我做错了什么吗?我怀疑这可能是我设置事务管理器的方式。你可以在github上找到我的整个项目:https://github.com/cschneider/Karaf-Tutorial/tree/master/cameljpa/jpa2jms

当事务在异常处理程序中被标记但异常被吞噬时,就会发生这种情况。通常情况下,这样的异常应该出现并导致整个事务回滚。

如果异常被吞噬,那么camel会在最后尝试提交,从而导致上述异常。

最新更新