两个资源 类 上的 Jersey 404 具有相似的 @Path 注释

Jersey 404 on two Resource Classes with similar @Path annotations

我有一个 RESTful Web 服务,使用 Drop Wizard 0.8.5 和 Jersey 2.21。我有一个资源 class 注释为:

@Path("/mysite/somepath")

这个class包含各种方法,例如@GETs、@PUTS等,都可以正常工作。

现在,我有另一个资源 class,用 @Path("/mysite") 注释。在此资源 class 中,我需要添加一些使用以下路径注释的方法:

@Path("/somepath/dothis")
@Path("/somepath/dothat")

资源class全部注册就好了。但是,当我调用第二个 class 时,我得到了 404,因为 Jersey 似乎正在我的第一个 class 中寻找这些方法。除了更改我的 @Path 注释以避免此命名冲突之外,是否有解决此问题的方法?

泽西岛假定每个 class 都有与之关联的独特 @Path 表达。如果你想对两个不同的资源使用同一个 @Path 变量,你要么使用两个不同的路径名,要么你可以将两个 class 组合成一个 class。