java - Jersey:ContainerRequestFilter 抛出错误

标签 java rest jersey dropwizard

我正在使用 dropwizard 和 Jersey , 我通过以下方法定义了 ContainerRequestFilter 的自定义提供程序

import javax.ws.rs.ext.Provider;

import java.io.IOException;
import java.util.List;

import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerRequestFilter;
import javax.ws.rs.core.MultivaluedMap;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@Provider
public class CustomRequestFilter implements ContainerRequestFilter{

  private final static Logger logger = LoggerFactory.getLogger(CustomRequestFilter.class);

  @Override
  public void filter(ContainerRequestContext requestContext) throws IOException {


    MultivaluedMap<String,String> myHeaders = requestContext.getHeaders();
    List<String> appId = myHeaders.get("myHeader");
    logger.info(myHeader.get(0));
    logger.info("Hello Word, it is customRequestFilter");


  }

}

但是系统抛出错误

ERROR [2014-05-26 10:04:46,556] com.sun.jersey.server.impl.container.filter.FilterFactory: The filter, of type myPackage.CustomRequestFilter, MUST be of the type String, String[], Class<? extends 
com.sun.jersey.spi.container.ContainerRequestFilter>, or an instance of 
com.sun.jersey.spi.container.ContainerRequestFilter. The filter is ignored.

最佳答案

我认为这只是使用正确导入的问题。试试这个:

import java.util.List;

import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.ext.Provider;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.sun.jersey.spi.container.ContainerRequest;
import com.sun.jersey.spi.container.ContainerRequestFilter;

@Provider
public class CustomRequestFilter implements ContainerRequestFilter {

  private final static Logger logger = LoggerFactory.getLogger(CustomRequestFilter.class);

  public ContainerRequest filter(ContainerRequest requestContext) {
    MultivaluedMap<String,String> myHeaders = requestContext.getRequestHeaders();
    List<String> appId = myHeaders.get("myHeader");
    logger.info(appId.get(0));
    logger.info("Hello Word, it is customRequestFilter");
    return requestContext;
  }

}

关于java - Jersey:ContainerRequestFilter 抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23868027/

相关文章:

java - StreamCorruptedException : invalid stream header:

java - 数组占用多少空间?

java - 变量已初始化但已初始化时出错?

java - 在 Linux 上,人们是 chroot Java Web 应用程序还是使用 IPTables 并以非 root 身份运行?

ios - 从 Swift 函数中的异步调用返回数据

rest - 在没有用户委托(delegate)的情况下如何使用OAuth? -- 微软图形API

javascript - Docker for Windows REST API - 启用 CROSS

java - 夏令时的 JDBC Mysql 时区问题