Interstage Application Server/Interstage Web Server チューニングガイド
目次 索引 前ページ次ページ

第7章 JDK/JREのチューニング> 7.3 チューニング/デバッグ技法> 7.3.2 スタックトレース

7.3.2.1 スタックトレースの解析方法(その1)

 図1の出力例をもとにして、解析方法を説明します。
 図1の先頭の“数字:”は、説明の便宜上、付加しています。

図1 スタックトレースの出力例

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のスタックトレースは、6行目から上方向に読むと、次の流れで例外が発生したことがわかります。

  1. javax.servlet.http.HttpServlet.service()が、HttpServlet.javaの865行目で、javax.servlet.http.HttpServlet.service()を実行し、
  2. javax.servlet.http.HttpServlet.service()が、HttpServlet.javaの772行目で、agency.attestation.AttestationServlet.doPost()を実行し、
  3. agency.attestation.AttestationServlet.doPost()が、AttestationServlet.javaの161行目で、agency.attestation.AttestationServlet.doGet()を実行し、
  4. agency.attestation.AttestationServlet.doGet()が、AttestationServlet.javaの96行目で、agency.attestation.CheckLoginInfo.doCheck()を実行した結果、
  5. agency.attestation.CheckLoginInfo.doCheck()内のCheckLoginInfo.javaの150行目で、java.lang.NullPointerExceptionという例外が発生した

■解析方法

 図1のスタックトレースの解析例を、次に示します。

  1. 1行目の例外情報から、原因を特定できるかどうか確認します。
    NullPointerExceptionがスローされていることがわかります。
  2. 2行目のCheckLoginInfo.javaの開発担当者であれば、150行目の実装に問題がないかどうかを確認します。
  3. 2行目のCheckLoginInfo.javaの開発担当者でない場合、スタックトレース中で最上行にある開発担当者が開発したクラスを探します。そして、そのクラスの実装に問題がないかどうかを確認します。それでも、原因を特定できない場合は、開発したクラスが使用しているクラスの提供元に調査を依頼します。

 または、スタックトレースが、想定された流れでメソッドを実行しているかどうかを確認するのも1つの方法です。


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

Copyright 2008 FUJITSU LIMITED