Uploaded image for project: 'Tools (JBoss Tools)'
  1. Tools (JBoss Tools)
  2. JBIDE-25669

Unexpected JAX-RS validation error for Feature

    Details

    • Sprint:
      devex #145 February 2018, devex #161 January 2019, devex #162 February 2019
    • Story Points:
      10
    • Steps to Reproduce:
      Hide

      Place a class implementing one of the javax.ws.rs.client.ClientRequestFilter or
      javax.ws.rs.client.ClientResponseFilter in a Dynamic Web Project. Annotate the class with the javax.ws.rs.ext.Provider annotation.
      Turn on support for JAX-RS via project properties.
      Allow the project to build.
      Note the error marker produced:

      The Provider must implement at least one of the following interfaces: javax.ws.rs.ext.MessageBodyReader, javax.ws.rs.ext.MessageBodyWriter, javax.ws.rs.ext.ExceptionMapper, javax.ws.rs.ext.ReaderInterceptor, javax.ws.rs.ext.WriterInterceptor, javax.ws.rs.container.ContainerRequestFilter, javax.ws.rs.container.ContainerResponseFilter or javax.ws.rs.ext.ContextResolver.

      Show
      Place a class implementing one of the javax.ws.rs.client.ClientRequestFilter or javax.ws.rs.client.ClientResponseFilter in a Dynamic Web Project. Annotate the class with the javax.ws.rs.ext.Provider annotation. Turn on support for JAX-RS via project properties. Allow the project to build. Note the error marker produced: The Provider must implement at least one of the following interfaces: javax.ws.rs.ext.MessageBodyReader, javax.ws.rs.ext.MessageBodyWriter, javax.ws.rs.ext.ExceptionMapper, javax.ws.rs.ext.ReaderInterceptor, javax.ws.rs.ext.WriterInterceptor, javax.ws.rs.container.ContainerRequestFilter, javax.ws.rs.container.ContainerResponseFilter or javax.ws.rs.ext.ContextResolver.

      Description

      We are using JAX-RS client filters in our project. One of the classes looks like this:
      ...
      import java.io.IOException;

      import javax.ws.rs.client.ClientRequestContext;
      import javax.ws.rs.client.ClientRequestFilter;
      import javax.ws.rs.ext.Provider;

      ...
      @Provider
      public class ClientFilter implements ClientRequestFilter

      { ... }

      The class is part of a Dynamic Web Project with JAX-RS support turned on.

      The combination of @Provider and either of the ClientRequestFilter or ClientRequestFilter appears to confuse the JAX-RS validator which produces the following error:

      The Provider must implement at least one of the following interfaces: javax.ws.rs.ext.MessageBodyReader, javax.ws.rs.ext.MessageBodyWriter, javax.ws.rs.ext.ExceptionMapper, javax.ws.rs.ext.ReaderInterceptor, javax.ws.rs.ext.WriterInterceptor, javax.ws.rs.container.ContainerRequestFilter, javax.ws.rs.container.ContainerResponseFilter or javax.ws.rs.ext.ContextResolver.

      I suspect the validator needs to be enhanced to also accept the two client filter interfaces when checking the @Provider annotation?

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  jeffmaury Jeff MAURY
                  Reporter:
                  clerum Cody Lerum
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: