我有一个Struts操作调用一个由3个EJB调用组成的链:第一个调用第二个调用第二个调用第三个调用。
第三个EJB可以抛出一个低级已检查异常,第二个EJB包含在运行时异常(throw new RuntimeException(e);
)中,因为它只是不可恢复。
现在,由javax.ejb.EJBTransactionRolledbackException
引起的所有Struts操作获取都是javax.ejb.TransactionRolledbackLocalException
,之后切断了堆栈跟踪(这意味着,查看了Throwable.printStackTrace()
,TransactionRolledbackLocalException
没有原因设定。)
我可以强制Glassfish(v.2.1.1)以某种方式将原因压印到此异常中,这样我可以有一个有意义的痕迹吗?也许不是抛出RuntimeException
,而是更精细的东西?