Я использую JSF 2 и EJB 3.
Мне кажется, мой вариант использования довольно прост:
Бэк JSF-компонента вызывает метод для введенного ejb.EJB может выдать пользовательское исключение.Когда возникает исключение, я хочу, чтобы транзакция была откатана И исключение было перехвачено в моем компоненте JSF (чтобы он мог работать с пользователем).
Поэтому я аннотировал свое пользовательское исключение @ApplicationException (rollback =true) и выкинул его из моего метода ejb.
Но моя проблема в том, что мое пользовательское исключение никогда не доходит до bean-компонента jsf.Вместо этого он входит в EJBTransactionRolledBackException.
Если я аннотирую свое исключение с помощью @ApplicationException (rollback = false), то транзакция не откатывается, а исключение перехватывается компонентом JSF.
Есть ли способ откатитьтранзакция AND, чтобы бросить исключение Application catchable?
Может ли это быть специфичным для Glassfish?(Я использую Glassfish 3.1.1).