2012-07-20 68 views
1

我目前正在開發一個教程,以與JTA事務一起在Karaf上顯示camel-jpa。我用下面的路線:當使用camel-jpa和JTA事務時,「無法提交:標記爲回滾的事務」異常

從( 「JPA://net.lr.tutorial.karaf.camel.jpa2jms.model.Person」).ID( 「jpa2jms」) .transacted() .marshal( df) .bean(new ExceptionDecider()) .to(「jms:person」);

所以我通過在ExceptionDecider中拋出異常來檢查事務是否工作。當我這樣做,我得到以下異常:

https://gist.github.com/3150591

任何想法我做錯了什麼?我懷疑這可能是我設置事務管理器的方式。 您可以在github上找到我的整個項目: https://github.com/cschneider/Karaf-Tutorial/tree/master/cameljpa/jpa2jms

回答

3

當事務在異常處理程序中標記但異常被吞噬時,會發生這種情況。通常情況下,這些異常會冒泡並導致整個事務回滾。

如果異常被吞噬,駱駝會嘗試在最後提交,導致上述異常。