Interstage Application Server/Interstage Web Server トラブルシューティング集
目次 索引 前ページ次ページ

第8章 J2EEアプリケーション開発・運用時の異常

8.6 Javaの例外(Exception)と対処方法

 アプリケーション処理で例外が発生した場合、IJServerのコンテナログにJavaのスタックトレースが出力されます。
 スタックトレースの出力例と解析方法を以下に説明します。

■出力例

 Webアプリケーションのサーブレットで例外が発生した場合で説明します。
 (先頭の“数字:”は、説明の都合上記載しています。)

 -----------------------------------------------------------------------------------
  1: java.lang.NullPointerException
  2:  at agency.attestation.CheckLoginInfo.doCheck(CheckLoginInfo.java:150)
  3:  at agency.attestation.AttestationServlet.doGet(AttestationServlet.java:96)
  4:  at agency.attestation.AttestationServlet.doPost(AttestationServlet.java:161)
  5:  at javax.servlet.http.HttpServlet.service(HttpServlet.java:772)
  6:  at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
             :
 -----------------------------------------------------------------------------------

  1. NullPointerExceptionが発生(例外)
  2. 発生個所はagency.attestation.CheckLoginInfoクラスのdoCheckメソッド内であり、CheckLoginInfo.javaの150行目にあたる。
  3. doCheckメソッドを呼び出した個所はagency.attestation.AttestationServletクラスのdoGetメソッド内であり、AttestationServlet.javaの96行目にあたる。
  4. doGetメソッドを呼び出した個所はagency.attestation.AttestationServletクラスのdoPostメソッド内であり、AttestationServlet.javaの161行目にあたる。
  5. doPostメソッドを呼び出した個所はjavax.servlet.http.HttpServletクラスのserviceメソッド内であり、HttpServlet.javaの772行目にあたる。
  6. serviceメソッドを呼び出した個所はjavax.servlet.http.HttpServletクラスのserviceメソッド内であり、HttpServlet.javaの865行目にあたる。

■解析方法

 スタックトレースの先頭行のクラスが自分で作成したクラスであるならば、例外が発生した行がどうなっているのかを、ソースファイルを見て確かめることができます。
 先頭行のクラスが自分で作成したクラスでないならば、例外が発生した行を見ることができないかもしれません。その場合、トレースの最も上行にある自分が作成したクラスを探し、ソースファイルを見て確認してください。
 発生した例外が何であるかを確認して、呼び出し個所のメソッドの引数などを確認してください。
 また、スタックトレースに続けて“Caused by:”として別の例外が出力されている場合、根本原因を表していますので、こちらをあわせて確認してください。

 スタックトレースで表示される例外(Exception)とErrorについては、“メッセージ集”を参照してください。

補足


目次 索引 前ページ次ページ

Copyright 2008 FUJITSU LIMITED