У меня есть два класса REST для простой веб-службы (Jersey и GlassFish), в которой задействованы ресурсы пользователя - один для работы со всеми пользователями (например, фабрика для @POSTing), а другой для отдельных пользователей (например, @GET, @PUT, @DELETE). Они находятся по адресу:
@Stateless @Path("users") public class AllUsersResource {...}
@Stateless @Path("user") public class OneUserResource {...}
соответственно. При POSTing к AllUsersResource я хочу вернуть Location (через Response.created(uri).build()
) нового пользователя, например,
http://localhost:8080/.../user/152
Мой вопрос в том, как это сделать. AllUsersResource инжектирует @Context UriInfo uriInfo, но это не дает мне @Path информации для OneUserResource, только для текущего вызова ("users"). Способ, которым я наконец-то заставил его работать, заключался в использовании отражения, но я беспокоюсь, что это хрупко и нечисто:
OneUserResource.class.getAnnotation(Path.class).value();
Поискав на StackOverflow, я нашел только следующие вещи, которые можно попробовать, но безуспешно:
Любая помощь была бы потрясающей!