如何在JSF中捕获未捕获的运行时异常?

时间:2012-10-23 12:26:22

标签: java jsf

最近,我花了8个小时调试我的JSF代码。失败的原因是ClassNotFoundException,它既没有出现在控制台输出中,也没有出现在日志文件中。

在普通的Java应用程序中,我可以使用Thread.setDefaultUnhandledExceptionHandler(...)来记录未捕获的异常。但它对我的JSF应用程序没有帮助。

如何在JSF应用程序中实现未捕获的运行时异常的日志记录(理想情况下 - 最小化日志文件和控制台 - 标准错误)?

更新

  • 引用的JSF应用程序项目app(包含Maven依赖项)项目logiccommons版本1.
  • commons项目版本2包含一个班级X
  • commons项目版本1不包含课程X
  • logic项目必需且包含对commons版本2的依赖。
  • ClassNotFoundException发生在课程X上。

这个测试案例可以重现这个问题:

@Test
public void test() {
    try {
        EntryPageController objectUnderTest = new EntryPageController();
        objectUnderTest.init();
        objectUnderTest.resetButtonAction();
        objectUnderTest.simulateYearButtonAction();
    } catch (Throwable exception) {
        LOGGER.error("", exception);
        Assert.fail(exception.getMessage());
    }
}

其中EntryPageController是JSF ManagedBean

0 个答案:

没有答案