代码之家  ›  专栏  ›  技术社区  ›  Yishai

JBoss4.2吞并了EJB异常原因的stacktrace,如何防止这种情况?

  •  1
  • Yishai  · 技术社区  · 17 年前

    如果我有这样的代码:

    try {
      doSomething();
    } catch (Exception e) {
      throw new EJBException(e);
    }
    

    生成的堆栈跟踪(捕获并记录时)将是:

    EJBException ....
       at(.....
       at(.....
    
    caused by: NullPointerException
    

    NullPointerException没有堆栈跟踪。有没有一种方法可以防止堆栈跟踪被吞没,并将完整的堆栈跟踪作为由以下原因引起的事件的一部分?

    2 回复  |  直到 17 年前
        1
  •  3
  •   diega    17 年前

    这是一个实现决策,他们不会将原始原因设置为ejbException的原因。您可以通过getCausedByException()方法访问该方法。 关于这一点,您有一个JIRA[1](看看这一点,因为这是一个痛苦的解决方法),您可以将JBoss作为实现[2]来考虑。

    [1]: https://jira.jboss.org/jira/browse/EJBTHREE-337

    http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbossas/trunk/jboss-j2ee/src/main/javax/ejb/EJBException.java?revision=39121&view=markup&sortby=rev&pathrev=39121

        2
  •  0
  •   duffymo    17 年前

    可能是EJBException不可链接。