Jersey WebService采用扁平路径结构?

时间:2015-10-15 12:21:57

标签: java web-services rest jersey

我目前正在编写一个包含多个基于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 。有没有办法跳过“休息”部分?

1 个答案:

答案 0 :(得分:1)

您可以使用@Path("/")为您的课程添加注释,然后使用@Path("received")@Path("found")注释您的方法。