У меня есть действие Struts, вызывающее цепочку из 3 вызовов EJB: первый вызывает второй, а третий -.
Третий EJB может выдать проверенное исключение низкого уровня , которое второй EJB переносит в исключение времени выполнения (throw new RuntimeException(e);
), так как оно просто невозможно восстановить. *
Теперь все, что получает действие Struts, это javax.ejb.EJBTransactionRolledbackException
, вызванное javax.ejb.TransactionRolledbackLocalException
, после этого трассировка стека обрезается (что означает, что, посмотрев на Throwable.printStackTrace()
, у TransactionRolledbackLocalException
нет причины).
Могу ли я заставить Glassfish (v. 2.1.1) каким-то образом запечатлеть причину в этом исключении, чтобы я мог иметь осмысленный след? Возможно, не бросить RuntimeException
, но что-то более сложное?