Java EJB中的异常处理
我有一个执行一些DB操作的EJB,然后在执行更多DB操作的JNDI查找之后调用另一个EJB。这第二个EJB调用可能引发一些异常,即PersistenceException(我在代码中看到,该异常将事务标记为rollbackonly)。是否有任何方法可以避免事务回滚?下面是总结问题的代码。先谢谢你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
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)
这门课还有很多要学的。我强烈建议阅读。提示:如果你的问题解决了,考虑接受它。