我想一个名字绑定到JAX-RS过滤器,所以我可以保证在剩下的服务为以下一些方法:
担保名称绑定:
@NameBinding
@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(value = RetentionPolicy.RUNTIME)
public @interface Secured {
}
身份验证筛选器:
@Secured
@Provider
@Priority(Priorities.AUTHENTICATION)
public class AuthenticationAgent implements ContainerRequestFilter {
@Override
public void filter(ContainerRequestContext requestContext) throws IOException {
//do something
}
}
然而,日食给我这个错误,当我加入了安全注解我过滤。
没有与这个名字绑定注释JAX-RS应用程序,资源或资源的方法。
这不是一个真正的错误,将停止JAX-RS的工作。它更多的只是一个警告(具体到编辑器)的。
名称绑定应该只用于当你想过滤器限制对资源类/方法也标注了名称绑定注释。如果是这种情况,那么注释你想通过该过滤器的类/方法。如果你想要的一切都要经过过滤,然后完全忘记了注解。刚刚摆脱它。
这些类型的错误是不是真正的大错误。对于这种类型的JAX-RS的错误,我们可以将其标记为警告或忽略它。
对于Eclipse,去Window > Preferences > Jboss Tools > JAX-RS > JAX-RS Validator > JAX-RS Name Bindings
和Missing @Retention annotation
设置为“错误”以外的东西。 (是的,首名被误导)。
(要自定义它为一个特定的项目,在右上角点击Configure Project Specific Settings...
)