无法将 ResourceInfo 注入 ContainerRequestFilter
Cannot inject ResourceInfo into ContainerRequestFilter
我正在尝试实现一个 ContainerRequestFilter 来检查一些东西。最终,它将验证一个令牌,但我还没有。该过滤器在 Grizzly HTTP 服务器 (Grizzly 2.3.4) 上运行并位于 JAX-RS 资源 (Jersey 2.0) 的前面。我也在用 Guice 3.0.
当我尝试将 javax.ws.rs.container.ResourceInfo 注入过滤器时,它为空。
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerRequestFilter;
import javax.ws.rs.container.ResourceInfo;
import javax.ws.rs.core.Context;
import java.io.IOException;
public class MyRequestFilter implements ContainerRequestFilter {
@Context
private ResourceInfo resourceInfo;
public void filter(ContainerRequestContext containerRequestContext) throws IOException {
String method = containerRequestContext.getMethod();
System.out.println("method = " + method);
if("OPTIONS".equals(method)) return;
System.out.println("DO SECURITY");
}
}
正在将请求注入到 JAX-RS 资源中,注入成功,我可以使用它了。
我做错了什么?
要在 ContainerRequestFilter
中启用注入,您必须将其注释为 @Provider
,然后才能正常工作
@Provider
public class MyRequestFilter implements ContainerRequestFilter {
@Context
private ResourceInfo resourceInfo;
...
}
我正在尝试实现一个 ContainerRequestFilter 来检查一些东西。最终,它将验证一个令牌,但我还没有。该过滤器在 Grizzly HTTP 服务器 (Grizzly 2.3.4) 上运行并位于 JAX-RS 资源 (Jersey 2.0) 的前面。我也在用 Guice 3.0.
当我尝试将 javax.ws.rs.container.ResourceInfo 注入过滤器时,它为空。
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerRequestFilter;
import javax.ws.rs.container.ResourceInfo;
import javax.ws.rs.core.Context;
import java.io.IOException;
public class MyRequestFilter implements ContainerRequestFilter {
@Context
private ResourceInfo resourceInfo;
public void filter(ContainerRequestContext containerRequestContext) throws IOException {
String method = containerRequestContext.getMethod();
System.out.println("method = " + method);
if("OPTIONS".equals(method)) return;
System.out.println("DO SECURITY");
}
}
正在将请求注入到 JAX-RS 资源中,注入成功,我可以使用它了。
我做错了什么?
要在 ContainerRequestFilter
中启用注入,您必须将其注释为 @Provider
,然后才能正常工作
@Provider
public class MyRequestFilter implements ContainerRequestFilter {
@Context
private ResourceInfo resourceInfo;
...
}