1

例如,如果我从 Web 上下文调用 EJB 方法。EJB 具有带有本地 Bean 的容器管理事务(CMT),其方法具有required_new transactional属性。如果 EJB 方法抛出系统异常,客户端会得到什么?我的意思是,事务被回滚。那么,客户得到EJBTransactionRolledBackException还是干脆EJBException

提前致谢。

4

1 回答 1

2

根据 EJB 3.1 规范的第 14.3.1 节“来自会话 Bean 的业务接口方法和无接口的异常”,表 15 指出 RequiresNew 方法抛出的非 AppException 会导致客户端接收 EJBException。EJBTransactionException 旨在在 EJB 方法使用调用者的事务运行时抛出,并且 EJB 容器由于系统异常已将事务标记为回滚。

于 2013-07-16T18:27:45.860 回答