Java 带有正则表达式的JAX-RS@Path注释不';与预期的URL不匹配
我希望API的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
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注释。你在使用子资源定位器吗?我添加了部分资源类。我在类级路径注释下有子资源。