使用带有fabric3的javax.ws.rs.core.Context

时间:2015-11-18 16:26:16

标签: java web-services rest jersey-2.0

我正在尝试使用fabric3v2.5.3为RESTful Web服务实现ContainerRequestFilter。我有过滤器工作,但我需要在请求中获取IP地址。我尝试过使用

   @Context
   HttpServletRequest servletRequest;

但是在尝试访问HttpServletRequest时会抛出一个空指针异常。我们正在使用JAX-RS fabric3扩展附带的内置平针织物2.13。有没有办法让@Context在fabric3中工作?

1 个答案:

答案 0 :(得分:0)

@Context注入支持将添加到Fabric 3.0中,并且在以前的版本中不可用。

对于早于Fabric3 3.0的版本,您可以通过注入的Fabric3RequestContext检索HTTP servlet请求和响应对象:

 public class SomeFilter implements .... {

   @Context
   protected F3RequestContext context;

   public void filter(ContainerRequestContext requestContext) {
       HttpServletRequest req =  
            context.getHeader(HttpServletRequest.class, "fabric3.httpRequest");
   }
}