[jax-rs-spec users] Re: Default for missing _at_Path

From: <>
Date: Mon, 29 Feb 2016 19:46:13 +0100


no need to imply that I did not read the Javadocs -- I did several
times before asking.

Here is the full JavaDoc of @Path annotation as of v2.0. Please tell
me where it says what Jersey will do in case no @Path is found
anywhere in a JAX-RS resource class (yes, it talks about base URIs,
but it does not say that the default for the annotation's value must
be "/" or "" which is possibly what you imply and which is NOT what
Jersey does). BTW, it DOES need explanation as I was asked that very
question several times, so it is everything but unambiguous for others:

   public @interface Path
   Identifies the URI path that a resource class or class method will
serve requests for.
   Paths are relative. For an annotated class the base URI is the
application path, see ApplicationPath. For an annotated method the
base URI is the effective URI of the containing class. For the
purposes of absolutizing a path against the base URI , a leading '/'
in a path is ignored and base URIs are treated as if they ended in
'/'. E.g.:

    public class WidgetsResource {
     String getList() {...}

     @GET @Path("{id}")
     String getWidget(@PathParam("id") String id) {...}
   In the above, if the application path is catalogue and the
application is deployed at, then GET requests for will be handled by the getList
method while requests for
(where nnn is some value) will be handled by the getWidget method. The
same would apply if the value of either @Path annotation started with

   Classes and methods may also be annotated with Consumes and
Produces to filter the requests they will receive.


> Go read the Javadoc for @Path. It is explained there and IMO, needs
> no further explanation.
> On 2/29/2016 12:32 PM, wrote:
>> According to the current wording of the JAX-RS 2.0 specification, a
>> compliant JAX-RS resource class not necessarily must have a @Path
>> annotation (it is enough to have @GET for example). Maybe I am
>> blind, but I cannot see an explanation what the default path shall
>> be in case no @Path is found. So my question is:
>> How do Jersey / CXF / RestEasy handle this case currently, and
>> won't it be a good idea if we add a short note to the JAX-RS 2.1
>> spec how it SHALL be like?
>> -Markus