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

问题描述 投票:0回答:1

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

   @Context
   HttpServletRequest servletRequest;

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

java web-services rest jersey-2.0
1个回答
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");
   }
}
© www.soinside.com 2019 - 2024. All rights reserved.