繁体   English   中英

@Path regexp中的Jaxrs(RESTEasy)多个子资源

[英]Jaxrs (RESTEasy) multiple sub-resources in @Path regexp

我在使用regex @Path参数时遇到了一个小问题。 我正在尝试匹配路径a或b。 我一直在尝试使用:

@Path("/{a: path\\/to\\/resource|resource}")

所以要么

http:// localhost:1111 / path / to / resource

要么

http:// localhost:1111 /资源

都将执行相同的方法。 当我使用两个正斜杠时,我的问题似乎出现了。 我只能使用

http:// localhost:1111 /资源

但其他人没有。

但是,在这样做时:

@Path("/{a: path\\/resource|resource}")

它可以按预期工作,我可以使用

http:// localhost:1111 /路径/资源

要么

http:// localhost:1111 / resource

我尝试做一个否定的前瞻,以排除查询的第一部分,仅返回common属性(资源):

@Path("/{a: (?!path\\/to\\/)resource}")

但这也不起作用。 它与我的第一个实现具有相同的效果,我只能访问/ resource。

我也尝试过:

@Path("/{a: (path\\/to)?}{b: (\\/)?}resource")

哪个按预期工作,但如果我查询也可以工作

http:// localhost:1111 / path / toresource

要么

http:// localhost:1111 //资源

因此,当我只希望有两个URL时,创建四个URL。

我是否缺少与正斜杠有关的内容,为什么我的正则表达式模式不能包含多个正斜杠?

我想我可能已经找到了问题的原因。

我还有其他几个使用相同URL(/ path / to / resource)的HTTP方法(GET,PUT,DELETE)的路径。 我怀疑它在执行正则表达式之前试图将path / to / resource与这些方法之一进行匹配。 我对此的怀疑是,当我将POST方法重命名为:

@Path("/{a: (notPath\\/to\\/)?}resource"}

它按预期工作。 我都能从两个人那里得到回应

本地主机:1111 / notPath /到/资源

本地主机:1111 /资源

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM