我目前正在编写一个具有多个基于 Jersey 的 Web 服务的应用程序。看起来过于复杂的一件事是我用来调用它们的路径。
例如,用户收到了别人的包裹,并想让别人知道这一点。这一切都应该由一个基本端点 ParcelEndpoint 处理。
我按如下方式初始化端点:
@ApplicationPath("parcel4u")
public class RefApp extends Application {
public Set<Class<?>> getClasses() {
final Set<Class<?>> returnValue = new HashSet<Class<?>>();
returnValue.add(ParcelEndpoint.class);
return returnValue;
}
}
因此 /parcel4u/ 中的所有内容都将是 WebService 的方法。
当我尝试为 RefApp 的每个方法提供它自己的@Path(但不是类本身)时,没有找到任何方法。我必须给类提供 @Path 和每个方法。它看起来像这样:
@Path("rest")
public class ParcelEndpoint {
@GET
@Path("received")
@Produces(MediaType.TEXT_PLAIN)
public String received(@PathParam("userid") String forUser){
return "received!";
}
@GET
@Path("found")
@Produces(MediaType.TEXT_PLAIN)
public String found(@PathParam("userid") String forUser){
return "found!";
}
}
所以我可以调用/parcel4u/rest/received或/parcel4u/rest/found。有没有办法跳过“其余”部分?
最佳答案
您可以使用 @Path("/")
注释您的类,然后使用 @Path("received")
和 @Path 注释您的方法(“找到”)
我想。
关于java - Jersey WebService 具有扁平路径结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33148474/