最近,我花了 8 个小时调试我的 JSF 代码。失败的原因是 a ClassNotFoundException,它既没有出现在控制台输出中,也没有出现在日志文件中。
在普通的 Java 应用程序中,我可以Thread.setDefaultUnhandledExceptionHandler(...)用来记录未捕获的异常。但这对我的 JSF 应用程序没有帮助。
如何在 JSF 应用程序中实现未捕获的运行时异常的日志记录(理想情况下 - 记录文件和控制台,最低限度 - 到标准错误)?
更新:
- JSF 应用程序项目
app引用(包含 Maven 依赖项)项目logic和commons版本 1。 commons项目版本 2 包含一个类X。commons项目版本 1 不包含 classX。logiccommons项目需要并包含对版本 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());
}
}
EntryPageControllerJSF在哪里ManagedBean。