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