1

次のコードがあります。

try
      {
          glogger.debug("Calling getReportData (BudgetInBriefDAO)");
          lHashData = objBudgetInBriefDAO.getReportData(lStrFinYrId, lStrLangId, lStrContextPath, lStrFinYrDesc);
          glogger.debug("Returning from getReportData (BudgetInBriefDAO)");
      }
//      catch( InvocationTargetException ie )
//      {
//          glogger.error("InvocationTargetException !!!");
//          glogger.error("InvocationTargetException in calling BudgetInBriefBean -> getReportData");
//          glogger.error("Target Exception is : " + ie.getTargetException());
//          glogger.error("Cause is : " + ie.getCause());
//          ie.printStackTrace();
//      }
      catch( Exception e )
      {
          glogger.error("Exception !!!");
          glogger.error( "Error in calling BudgetInBriefBean -> getReportData. Error is :- " + e );
          e.printStackTrace();
      }

次のエラーが表示されます:

FATAL: AJPRequestHandler-ApplicationServerThread-25 com.tcs.sgv.common.util.GenericEJBObject - InvocationTargetException :java.lang.reflect.InvocationTargetException - 2012 年 2 月 14 日 12:36:00,155 - 5210474 ミリ秒

スタック トレースを出力していません。例外の原因を知るにはどうすればよいですか?

コードのコメントを外しましたが、スタック トレースが出力されません。

その間、私の BudgetInBriefDAO 実装 (BudgetInBriefDAOImpl) には 4 つのクラスが含まれています。

BudgetInBriefDAOImpl & 他の 3 つの Thread クラス

破損することなく、すべてのクラス ファイルを正常に逆コンパイルしました。

例外の実際の原因を見つけるのを手伝ってください。

前もって感謝します。

4

1 に答える 1

2

逆コンパイルしてみてくださいcom.tcs.sgv.common.util.GenericEJBObject; 多分それは例外を飲み込みます。

または、アプリをデバッグモードで起動し、のすべてのコンストラクターにブレークポイントを設定しますInvocationTargetException

注:デバッグしたい場所に到達するずっと前に、他のコードによってこれらの例外が大量に発生するため、これは実用的でないことが判明する可能性があります。その場合は、これらのブレークポイントを無効にし、最初に新しいブレークポイントを追加して、このブレークglogger.debugポイントがヒットしたときに例外のブレークポイントを再度有効にします。

デバッガーにスタックトレースがある場合は、他の処理を行う前に、例外がスローされる場所にブレークポイントを設定します。

最後のオプション:ブレークポイントをglogger.fatal(または例外がログに記録される場所に)設定します。

于 2012-02-14T08:46:49.530 に答える