Eclipse 中的 RESTeasy 名称绑定注释错误

RESTeasy Name Binding Annotation Error in Eclipse

我正在尝试将名称绑定到 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 给我这个错误。

There is no JAX-RS application, resource or resource method with this name binding annotation.

这并不是真正会阻止 JAX-RS 工作的错误。它更像是一个警告(特定于该编辑器)。

仅当您希望将过滤器限制为资源时才应使用名称绑定 classes/methods 也使用名称绑定注释进行注释。如果是这种情况,请注释要通过该过滤器的 classes/methods。如果你想让所有的东西都通过过滤器,那就完全忘记注释。摆脱它。

这些类型的错误并不是真正的大错误。对于 JAX-RS 上的此类错误,我们可以将其标记为警告或完全忽略它。

对于 Eclipse,转到 Window > Preferences > Jboss Tools > JAX-RS > JAX-RS Validator > JAX-RS Name Bindings 并将 Missing @Retention annotation 设置为除“Error”以外的其他内容。 (是的,首选项名称具有误导性)。

(要为特定项目定制,点击右上角的Configure Project Specific Settings...