0

最近、JSF コードのデバッグに 8 時間費やしました。失敗の原因はClassNotFoundExceptionで、コンソール出力にもログ ファイルにも表示されませんでした。

通常の Java アプリケーションではThread.setDefaultUnhandledExceptionHandler(...)、キャッチされていない例外をログに記録するために使用できます。しかし、私の JSF アプリケーションでは役に立ちませんでした。

JSF アプリケーションでキャッチされていない実行時例外のロギング (理想的には、ログ ファイルとコンソール、最小限に - 標準エラー) を実装するにはどうすればよいですか?

アップデート:

  • 参照されるJSF アプリケーション プロジェクトapp(Maven 依存関係を含む) プロジェクトlogiccommonsバージョン 1。
  • commonsプロジェクト バージョン 2 には class が含まれていましたX
  • commonsプロジェクト バージョン 1 には class が含まれていませんでしたX
  • 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());
    }
}

EntryPageControllerJSFManagedBeanです。

4

0 に答える 0