Java EJB中的异常处理

Java EJB中的异常处理,java,exception,transactions,ejb,ejb-3.0,Java,Exception,Transactions,Ejb,Ejb 3.0,我有一个执行一些DB操作的EJB,然后在执行更多DB操作的JNDI查找之后调用另一个EJB。这第二个EJB调用可能引发一些异常,即PersistenceException(我在代码中看到,该异常将事务标记为rollbackonly)。是否有任何方法可以避免事务回滚?下面是总结问题的代码。先谢谢你 public class Test { ejbMthod1() { // This method run under transaction // Do som

我有一个执行一些DB操作的EJB,然后在执行更多DB操作的JNDI查找之后调用另一个EJB。这第二个EJB调用可能引发一些异常,即PersistenceException(我在代码中看到,该异常将事务标记为rollbackonly)。是否有任何方法可以避免事务回滚?下面是总结问题的代码。先谢谢你

public class Test {

    ejbMthod1() {
        // This method run under transaction
        // Do some DB operation like update\delete
        if(somecondition) {
            try {
                // JNDI lookup for ejb2
                ejbMethod2();
            }
            catch(Exception ex){
                // Will catching the exception here save the Transaction from rollback ?
                // Is there any way I can avoid this rollback just by handling proper exceptions ?
            }
        }   
    }
}

class Test2 {
    ejbMethod2() {
        // Run under same transaction as caller
        // do some DB operation which can throw many exception i.e. PersistenceException.
    }
}

引发异常的方法必须注释如下:

@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)

这门课还有很多要学的。我强烈建议阅读。

提示:如果你的问题解决了,考虑接受它。