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

第8章 J2EEアプリケーション開発・運用時の異常> 8.13 Javaアプリケーションのメソッドトレースの採取

8.13.2 JSPの場合

 以下のJSPを例として、トレース情報の見方を説明します。

■例:HelloJSP.jspのコード

  ***********************************************************************************
   1 : <%@ page contentType="text/html; charset=Shift_JIS" %>
   2 : <HTML>
   3 : <HEAD>
   4 : <META http-equiv="Content-Type" content="text/html; charset=shift_jis">
   5 : <TITLE>HelloJSP</TITLE>
   6 : </HEAD>
   7 : <BODY>
   8 : <H1>HelloJSP</H1>
   9 : <FORM method=post >
  10 : <INPUT name="param" size="30">
  11 : <INPUT type="submit" value="Submit">
  12 : <INPUT type="reset" value="Reset">
  13 : </FORM>
  14 : <P>
  15 : <%
  16 : String param=request.getParameter("param");
  17 : if(param==null)
  18 :   param="";
  19 : String encParam=new String(param.getBytes("8859_1"),"Shift_JIS");
  20 : %>
  21 : 入力データ:<%=encParam%>
  22 : </BODY>
  23 : </HTML>
  ***********************************************************************************

■例:トレース情報

 上記JSPを呼び出した場合、以下のトレース情報が出力されます。日時、スレッド名および16進出力は、省略しています。

1 : in, org.apache.coyote.tomcat4.CoyoteRequestFacade, <init>, PARAM:(CoyoteRequest):org.apache.coyote.tomcat4.CoyoteRequest@6abd2f
2 : out, org.apache.coyote.tomcat4.CoyoteRequestFacade, <init>, RET:void
3 : in, org.apache.coyote.tomcat4.CoyoteResponseFacade, <init>, PARAM:(CoyoteResponse):org.apache.coyote.tomcat4.CoyoteResponse@2a78ee
4 : out, org.apache.coyote.tomcat4.CoyoteResponseFacade, <init>, RET:void
・・・(略)・・・
5 : in, org.apache.coyote.tomcat4.CoyoteRequestFacade, getRequestURI, PARAM:
6 : out, org.apache.coyote.tomcat4.CoyoteRequestFacade, getRequestURI, RET:(String):/MTrace/HelloJSP.jsp
7 : in, org.apache.jsp.HelloJSP_jsp, _jspService, PARAM:(CoyoteRequestFacade):org.apache.coyote.tomcat4.CoyoteRequestFacade@696452:(CoyoteResponseFacade):org.apache.coyote.tomcat4.CoyoteResponseFacade@39474b
8 : in, org.apache.coyote.tomcat4.CoyoteResponseFacade, setContentType, PARAM:(String):text/html; charset=Shift_JIS
9 : in, org.apache.coyote.tomcat4.CoyoteResponseFacade, isCommitted, PARAM:
10 : out, org.apache.coyote.tomcat4.CoyoteResponseFacade, isCommitted, RET:(boolean):false
11 : out, org.apache.coyote.tomcat4.CoyoteResponseFacade, setContentType, RET:void
・・・(略)・・・
12 : in, org.apache.jasper.runtime.JspWriterImpl, write, PARAM:(String):<P>
13 :
14 : in, org.apache.jasper.runtime.JspWriterImpl, write, PARAM:(String):<P>
15 : :(int):0:(int):5
16 : in, org.apache.jasper.runtime.JspWriterImpl, ensureOpen, PARAM:
17 : out, org.apache.jasper.runtime.JspWriterImpl, ensureOpen, RET:void
18 : in, org.apache.jasper.runtime.JspWriterImpl, min, PARAM:(int):7904:(int):5
19 : out, org.apache.jasper.runtime.JspWriterImpl, min, RET:(int):5
20 : out, org.apache.jasper.runtime.JspWriterImpl, write, RET:void
21 : out, org.apache.jasper.runtime.JspWriterImpl, write, RET:void
22 : in, org.apache.coyote.tomcat4.CoyoteRequestFacade, getParameter, PARAM:(String):param
23 : out, org.apache.coyote.tomcat4.CoyoteRequestFacade, getParameter, RET:(String):?x?m?????q
・・・(略)・・・
24: out, org.apache.jsp.HelloJSP_jsp, _jspService, RET:void
25: in, org.apache.coyote.tomcat4.CoyoteRequestFacade, removeAttribute, PARAM:(String):org.apache.catalina.jsp_file
26: out, org.apache.coyote.tomcat4.CoyoteRequestFacade, removeAttribute, RET:void
27: in, org.apache.coyote.tomcat4.CoyoteRequestFacade, getAttribute, PARAM:(String):javax.servlet.error.exception
28: out, org.apache.coyote.tomcat4.CoyoteRequestFacade, getAttribute, RET:(Object):[]
29: in, org.apache.coyote.tomcat4.CoyoteRequestFacade, clear, PARAM:
30: out, org.apache.coyote.tomcat4.CoyoteRequestFacade, clear, RET:void
31: in, org.apache.coyote.tomcat4.CoyoteResponseFacade, clear, PARAM:
32: out, org.apache.coyote.tomcat4.CoyoteResponseFacade, clear, RET:void

■リクエスト前処理 1〜6行目

 HelloJSP.jspの呼び出しに先立ち、HttpServletRequest、HttpServletResponseの実装クラスが作成されていることがわかります。
 HelloJSP.jspがjspInitメソッドを実装している場合は、初回呼び出し時に、リクエスト前処理に先立ち、jspInitメソッドの呼び出しが出力されます。

■サービス(_jspServiceメソッド) 7〜24行目

 各メソッドとも、呼び出し後、正常復帰しているため、"in"と"out"が対になって出力されています。
 JSPコード1行目のpageディレクティブの処理が、トレース情報8行目のsetContentTypeメソッド呼び出しになっています。
 JSPコード14行目のPタグの出力が、トレース情報12行目のwriteメソッド呼び出しになっています。
 JSPコード19行目のパラメタ情報取り出し処理が、トレース情報22行目のgetParameterメソッド呼び出しになっています。

■リクエスト後処理 25〜32行目

 _jspServiceメソッドが復帰した後で、各種後処理が行われていることがわかります。
 HelloJSP.jspでjspDestroyメソッドを実装している場合は、IJServer停止時にこのメソッドが呼び出されます。


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

Copyright 2006 FUJITSU LIMITED