Java 带有正则表达式的JAX-RS@Path注释不';与预期的URL不匹配

Java 带有正则表达式的JAX-RS@Path注释不';与预期的URL不匹配,java,rest,jax-rs,Java,Rest,Jax Rs,我希望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

我希望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")
使用URL的

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 {

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

    }
Orgs资源类如下所示:

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

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

    }

你应该使用。在您的例子中,
UserResource
OrgResource

的子资源,我解决了这个问题。这和我的@Path注释无关。在创建这个项目时,我添加了一些旧的代码依赖项。其中一个是unsharding过滤器,其任务是在将URL中存在的碎片传递给下一个过滤器之前去除碎片。它正在从请求的路径中删除{oid},因此出现URL映射错误。只有在更改项目的URL格式时,我才遇到这个问题。

如果您发布部分资源类,可能会有所帮助。包括类和方法级别的@Path注释。你在使用子资源定位器吗?我添加了部分资源类。我在类级路径注释下有子资源。