0

すべてのサーブレットの URL と要求パラメーターをログに記録するフィルターを Tomcat にデプロイしました。今度は、同じものを Websphere アプリケーション サーバーにデプロイします。1. フィルター クラス ファイルをどこにコピーしますか? 2. Filter クラスの配置記述子 xml タグを入力する必要がある web.xml の場所。3. フィルター クラスが URL と要求パラメーターを記録するログ ファイル。

以下は私の 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");

  }
}
4

2 に答える 2

2

WebSphere では、EAR ファイル全体を実際にデプロイする必要があります。デプロイメント後にデプロイメント記述子 (web.xml など) を変更しようとしないでください。デプロイメント記述子を変更したら、ビルドして再デプロイする必要があります。私を信じてください、他のすべてが機能しないか、少なくとも操作に問題が発生します.

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

于 2011-07-23T06:50:08.123 に答える
0
  1. フィルタクラスファイルは通常、他のアプリケーションクラスと一緒にWARファイルにデプロイする必要があります。このフィルターをそれぞれにデプロイせずに複数のアプリケーションに適用する場合は、一般的なアプリケーションファイルの使用に関するこの記事を参照してください。
  2. Tomcatとは異なり、WebSphereには共有/グローバルweb.xmlがないため、各WARのweb.xmlでフィルターを構成する必要があります。
于 2011-07-25T14:58:21.237 に答える