我目前正在编写一个包含多个基于Jersey的WebServices的应用程序。似乎过于复杂的一件事是我用来称呼它们的路径。
例如,用户收到其他人的包裹,并希望让其他人知道此事。这应该由一个基本端点 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 。有没有办法跳过“休息”部分?
答案 0 :(得分:1)
您可以使用@Path("/")
为您的课程添加注释,然后使用@Path("received")
和@Path("found")
注释您的方法。