1

我希望我的 API 的 URL 具有以下用户资源格式:

http://hostname/webappname/something/something/serviceName/orgs/{id}/users

但是,由于 URL 映射失败,我收到 404 错误。但如果我有以下格式,我会得到回复。

http://hostname/webappname/{id}/something/something/serviceName/orgs/{id}/users

这是我的@Path注释:

@Path("/orgs/{oid: [0-9]+}/users")

但如果我有以下@Path注释:

@Path("/orgs")

有网址的

http://hostname/webappname/{id}/something/something/serviceName/orgs
http://hostname/webappname/something/something/serviceName/orgs

我总是得到回应。有人可以告诉我应该如何@Path为我的资源提供注释。或者我哪里错了?

用户资源类如下所示:

    @Path("/orgs/{oid: [0-9]+}/users")
    @Component
    public class UserResource extends Resource {

    }

Orgs 资源类如下所示:

    @Path("/orgs")
    @Component
    public class OrgResource extends Resource {

    }
4

2 回答 2

2

您应该使用JAX-RS 子资源。在您的情况下,UserResource是 的子资源OrgResource

于 2013-01-24T13:20:17.950 回答
0

我解决了这个问题。它与我的 @Path 注释无关。在创建这个项目时,我添加了一些旧代码依赖项。其中之一是取消分片过滤器,其工作是在将 URL 中存在的分片传递给下一个过滤器之前将其剥离。它正在从请求的路径中删除 {oid},因此出现 URL 映射错误。仅当我更改项目的 URL 格式时,我才遇到此问题。

于 2013-02-03T17:16:29.570 回答