我正在尝试使用fabric3v2.5.3为RESTful Web服务实现ContainerRequestFilter。我有过滤器工作,但我需要在请求中获取IP地址。我尝试过使用
@Context
HttpServletRequest servletRequest;
但是在尝试访问HttpServletRequest时会抛出一个空指针异常。我们正在使用JAX-RS fabric3扩展附带的内置平针织物2.13。有没有办法让@Context在fabric3中工作?
答案 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");
}
}