Websphere Application Server:servlet部署描述符的web.xml位置和过滤器servlet将记录的日志文件位置

时间:2011-07-23 06:43:01

标签: websphere web.xml logfile

我在Tomcat中部署了一个过滤器,它记录了所有servlet的URL和请求参数。 现在我想在Websphere Application服务器中部署它。 1.在哪里复制我的过滤器类文件? 2. web.xml的位置,我必须在其中输入Filter类部署描述符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");

  }
}

2 个答案:

答案 0 :(得分:2)

在WebSphere中,您应该真正部署整个EAR文件。部署后,请勿尝试修改部署描述符(web.xml等)。更改部署描述符后,您应该构建并重新部署。相信我,其他一切都不会起作用或至少在操作中产生麻烦。

默认情况下,WebSphere将<profilepath>/logs/<servername>导入SystemOut.logtrace.txt。记录配置取决于您的环境。

答案 1 :(得分:0)

  1. 您的过滤器类文件通常应与其他应用程序类一起部署到WAR文件中。如果要将此过滤器应用于多个应用程序而不部署到每个应用程序,请参阅this article on using common application files
  2. 与Tomcat不同,WebSphere没有共享/全局web.xml,因此您必须在每个WAR的web.xml中配置过滤器。