如何在开机自检期间获取不同资源的 JAX-RS @Path?
我有两个REST类用于涉及用户资源的简单Web服务(Jersey和GlassFish) - 一个用于对所有用户进行操作(例如,@POSTing的工厂),另一个用于单个用户(例如,@GET,@PUT,@DELETE)。他们分别位于:
@Stateless @Path("users") public class AllUsersResource {...}
@Stateless @Path("user") public class OneUserResource {...}
分别。当POST到AllUsersResource时,我想返回新用户的位置(通过),例如,Response.created(uri).build()
http://localhost:8080/.../user/152
我的问题是如何做到这一点。AllUsersResource注入@Context UriInfo uriInfo,但这并不能让我@Path OneUserResource的信息,只能获得当前调用(“用户”)的信息。我最终让它工作的方式只是使用反射,但我担心它是脆弱和不干净的:
OneUserResource.class.getAnnotation(Path.class).value();
搜索StackOverflow,我发现唯一要尝试的其他方法如下,但没有成功:
- com.sun.jersey.api.core.ResourceContext
- javax.ws.rs.core.UriInfo.getMatchedResources()
- @javax.inject.Inject OneUserResource oneUserRes;
任何帮助都会很棒!