在Java EE中,我试图在方法参数具有特定注释时调用拦截器.这是我的代码:
注释代码
@Retention(RUNTIME)
@Target(PARAMETER)
public @interface Token{
//NOP
}
拦截器代码
@Interceptor
public class TokenInterceptor{
@AroundInvoke
public Object checkInvocation(InvocationContext ctx) throws Exception {
//Actual Code that detects the presence of the annotation
}
}
带注释参数的方法
public void processOrders(@Token List token) {}
beans.xml
com.project.security.TokenInterceptor
当我尝试部署JBoss服务器时,出现以下错误.
Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-000069 An interceptor must have at least one binding, but com.project.security.TokenInterceptor has none
at org.jboss.weld.bean.InterceptorImpl.(InterceptorImpl.java:72)
at org.jboss.weld.bean.InterceptorImpl.of(InterceptorImpl.java:59)
at org.jboss.weld.bootstrap.AbstractBeanDeployer.createInterceptor(AbstractBeanDeployer.java:229)
at org.jboss.weld.bootstrap.BeanDeployer.createBeans(BeanDeployer.java:149)
at org.jboss.weld.bootstrap.BeanDeployment.createBeans(BeanDeployment.java:204)
at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:349)
at org.jboss.as.weld.WeldStartService.start(WeldStartService.java:63)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
… 3 more
关于使它正常运行我所缺少的任何想法?