有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Jersey响应日志过滤器,不包括GET的响应主体

我正在使用Jersey和Tomcat开发RESTWeb服务器,我有Jersey日志过滤器来记录请求和响应。我的网站上有这个。xml和它的工作

我想禁用记录GET响应的响应体,同时记录PUT和POST的响应体。我该怎么做

<init-param>
        <param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
        <param-value>com.sun.jersey.api.container.filter.LoggingFilter</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name>
        <param-value>com.sun.jersey.api.container.filter.LoggingFilter</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.config.feature.logging.DisableEntitylogging</param-name>
        <param-value>false</param-value>
    </init-param>

共 (1) 个答案

  1. # 1 楼答案

    我想你可以这样扩展过滤器:

    public class MyFilter extends com.sun.jersey.api.container.filter.LoggingFilter {
    
    // other (maybe fundamental) code omitted for brevity
    
      @Override
      public ContainerRequest filter(ContainerRequest request) {
          if(!request.getMethod().equals("GET")) {
              return super.filter(request);   
          }
          return request;
      }
    
    }
    

    然后改变你的网络。使用xml来代替

    <param-value>com.sun.jersey.api.container.filter.LoggingFilter</param-value>