我试图将名称绑定到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
}
}
然而,当我将安全注释添加到我的过滤器时,eclipse会给我这个错误。
没有JAX-RS应用程序,资源或资源方法 名称绑定注释。
答案 0 :(得分:2)
这不是一个会阻止JAX-RS工作的错误。它更像是一个警告(特定于该编辑器)。
仅当您希望将过滤器限制为也使用名称绑定注释注释的资源类/方法时,才应使用名称绑定。如果是这种情况,则注释要通过该过滤器的类/方法。如果您希望所有内容都通过过滤器,那么完全忘记注释。只是摆脱它。
答案 1 :(得分:1)
这些类型的错误并不是很大的错误。对于JAX-RS上的这种类型的错误,我们可以将其标记为警告或完全忽略它。
对于Eclipse,请转到Window > Preferences > Jboss Tools > JAX-RS > JAX-RS Validator > JAX-RS Name Bindings
并将Missing @Retention annotation
设置为“错误”以外的其他内容。 (是的,偏好名称具有误导性)。
(要针对特定项目自定义,请点击右上角的Configure Project Specific Settings...
)