Hey again,
how can turn a single root resource into a resource factory that
handles all requests through sub-resource locators -- *including* the
base URI @Path("/")?
I tried the following but I get 405 Method not allowed:
@Path("/")
public class RootResource
{
@Path("{path: .+}")
public Resource getResource()
{
return new Resource();
}
}
I guess Jersey expects @GET etc. on the RootResource -- but I want
@Path("/") to be handled by getResource() as well.
I haven't found any requirements for root resources to contain
resource methods e.g. GET - but maybe @Path("/") is a special case?
Is this possible with JAX-RS/Jersey?
I found a very similar dynamic dispatching example in the book
"RESTful Java with JAX-RS" -- however not with the base @Path("/"):
@Path("/customers")
public class CustomerDatabaseResource {
protected CustomerResource europe = new CustomerResource();
protected FirstLastCustomerResource northamerica =
new FirstLastCustomerResource();
@Path("{database}-db")
public Object getDatabase(@PathParam("database") String db) {
if (db.equals("europe")) {
return europe;
}
else if (db.equals("northamerica")) {
return northamerica;
}
else return null;
}
Martynas
graphity.org