我目前正在制作一个教程,在Karaf和JTA Transactions上展示camel-jpa。我使用以下路线:
从( “JPA://net.lr.tutorial.karaf.camel.jpa2jms.model.Person”).ID( “jpa2jms”) .transacted() .marshal(DF) .bean(new ExceptionDecider()) 。要( “JMS:人”);
所以我通过在ExceptionDecider中抛出异常来检查事务是否有效。当我这样做时,我得到以下例外:
https://gist.github.com/3150591
任何想法我做错了什么?我怀疑这可能是我设置事务管理器的方式。 你可以在github上找到我的整个项目: https://github.com/cschneider/Karaf-Tutorial/tree/master/cameljpa/jpa2jms
答案 0 :(得分:3)
当事务在异常处理程序中标记但吞下异常时会发生这种情况。通常情况下,此类异常应该冒泡并导致整个事务回滚。
如果吞下异常,那么camel会在最后尝试提交,从而导致上述异常。