Jersey 将CDIBean注入ContainerRequestFilter结果到UnsatifiedPendencyException
我试图将请求过滤器的工作委托给CDIBean。但是GlassFish4.0在调用RestURL时给了我一个例外 过滤器定义Jersey 将CDIBean注入ContainerRequestFilter结果到UnsatifiedPendencyException,jersey,jersey-2.0,Jersey,Jersey 2.0,我试图将请求过滤器的工作委托给CDIBean。但是GlassFish4.0在调用RestURL时给了我一个例外 过滤器定义 @Provider @Authenticated public class AuthenticationFilter implements ContainerRequestFilter{ @Inject private AuthenticationService authenticationService; @Override public void filter(Co
@Provider
@Authenticated
public class AuthenticationFilter implements ContainerRequestFilter{
@Inject
private AuthenticationService authenticationService;
@Override
public void filter(ContainerRequestContext containerRequestContext) throws IOException {
String token = containerRequestContext.getHeaderString("x-authentication-token");
if (!authenticationService.isAuthenticated(token)) {
containerRequestContext.abortWith(Response.serverError().entity("No authentication").build());
}
}
}
名称绑定的定义,以便我们可以标记特定的资源URL
@NameBinding
@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(value = RetentionPolicy.RUNTIME)
public @interface Authenticated {
}
以及CDIBean定义
@ApplicationScoped
public class AuthenticationService {
public boolean isAuthenticated(String token) {
boolean result = false;
if (token != null && token.length() > 0) {
....
}
return result;
}
}
我在WEB-INF目录中有一个bean.xml文件
<beans
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
bean-discovery-mode="all">
</beans>
谢谢
鲁迪你有什么例外?