2013-07-16 1 views
1

Например, Если я вызываю метод EJB из веб-контекста. EJB имеет управляемую транзакцией транзакцию (CMT) с локальным бином, и ее метод имеет атрибут required_new transactional. Что клиент получает, если метод EJB вызывает системное исключение? Я имею в виду, транзакция откат. Итак, получает ли клиент EJBTransactionRolledBackException или просто EJBException?В CMT Если я устанавливаю Requires_New транзакционный атрибут и выдает системное исключение, то клиент получает какое исключение?

Заранее спасибо.

ответ

2

В соответствии со спецификацией EJB 3.1, раздел 14.3.1 «Исключения из методов бизнес-интерфейса сеансового сеанса и без интерфейса», в таблице 15 указано, что исключение, отличное от AppException, вызванное методом RequiresNew, приводит к тому, что клиент получает EJBException. EJBTransactionException предполагается выбросить, когда EJB-метод работает с использованием транзакции вызывающего абонента, а контейнер EJB помечен транзакцией для отката из-за системного исключения.