2011-07-23 8 views
0

すべてのサーブレットのURLと要求パラメーターを記録するフィルターをTomcatにデプロイしました。 これをWebsphere Application Serverにデプロイします。 1.フィルタクラスファイルをどこにコピーしますか? 2. Filterクラスのデプロイメント記述子であるXMLタグを入力する必要があるweb.xmlの場所。 3.フィルタクラスがURLと要求パラメータを記録するログファイル。Websphere Application Server:サーブレットデプロイメント記述子のためのweb.xmlの場所と、フィルターサーブレットがログするログファイルの場所

以下は、私のFilterクラスのコードです。

import java.io.*; 
import javax.servlet.*; 
import javax.servlet.http.*; 
import java.text.SimpleDateFormat; 

import java.util.Date; 

public class T24RequestTime implements Filter { 

    private FilterConfig config = null; 

    Date dt = new Date(); 

    public void init(FilterConfig config) throws ServletException { 

    this.config = config; 

    } 

    public void destroy() { 

    config = null; 

    } 

    public void doFilter(ServletRequest request, ServletResponse response, 

        FilterChain chain) throws IOException, ServletException { 

    long before = System.currentTimeMillis(); 

    chain.doFilter(request, response); 

    long after = System.currentTimeMillis(); 

    SimpleDateFormat dateFormat = new SimpleDateFormat("[dd/MMM/yyyy:HH:mm:ss]"); 

    String endDate = dateFormat.format(new Date());  

    String name = ""; 

    if (request instanceof HttpServletRequest) { 

     name = ((HttpServletRequest)request).getRequestURI(); 

    } 

    config.getServletContext().log("T24: !Date-Time: !"+endDate+ "! Total Elapsed Time: !" +   (after - before) + "!ms!"+"! Company: !"+((HttpServletRequest)request).getParameter("companyId")+"! User: !"+((HttpServletRequest)request).getParameter("user")+"! Version: !"+((HttpServletRequest)request).getParameter("version")+"! Application: !"+((HttpServletRequest)request).getParameter("application")+"! Routine Name: !"+((HttpServletRequest)request).getParameter("routineName")+"! Timing: !"+((HttpServletRequest)request).getParameter("timing")+"! URL: !"+ name); 

    System.out.println("fsfsfsd"); 

    } 
} 

答えて

2

実際には、EARファイル全体を展開する必要があります。展開後にデプロイメント記述子(web.xmlなど)を変更しないでください。デプロイメント記述子を変更したら、ビルドして再デプロイする必要があります。私を信じて、それ以外のものは動作しないか、少なくとも操作上のトラブルを引き起こします。

デフォルトでは、WebSphereは<profilepath>/logs/<servername>SystemOut.logまたはtrace.txtにログします。ロギングの設定は環境によって異なります。

+0

ところで、あなたのログステートメントを作成するには 'StringBuilder'を見てください。 – home

0
  1. フィルタクラスファイルは、通常、他のアプリケーションクラスとともにWARファイルに配置する必要があります。複数のアプリケーションにこのフィルタを適用する場合は、this article on using common application filesを参照してください。
  2. Tomcatとは異なり、WebSphereには共有/グローバルweb.xmlがないため、各WARのweb.xmlにフィルタを設定する必要があります。
関連する問題