java - Resteasy @Path(value = "/") vs @Path(value = "") 它们相同

标签 java web-services rest resteasy

我正在使用 Resteasy。如果我声明一个方法并使用

@Path(value = "/") or @Path(value = "")

在该方法上。 两者是一样的吗?我的意思是 http://localhost:8080/testhttp://localhost:8080/test/ 将命中相同的方法。

如果是的话(这就是我的发现)。那么我如何识别请求 http://localhost:8080/test 和 http://localhost:8080/test/ 并将它们映射到单独的函数,我在两个函数中都有单独数量的 get 参数请求。

最佳答案

根据JAX-RS specification (page 17) ,第 3.7.3 节将 URI 模板转换为正则表达式:

4. If the resulting string ends with '/' then remove the final character.

因此,@Path(value = "/")@Path(value = "") 将命中相同的方法,因为尾随的 /第一个 @Path 上的 将被删除。

因此,请求 http://localhost:8080/testhttp://localhost:8080/test/ 各有不同。

关于java - Resteasy @Path(value = "/") vs @Path(value = "") 它们相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21934250/

相关文章:

java - JPA 从 Web 服务注销

WCF Web API 中的 HTTP 缓存似乎在浏览器之间不一致

java - 使用 WebSockets 实现 WebRTC 信令

java - Apache CXF 3.2 如何读取 SOAP 错误消息

java - @Transactional(rollbackfor=Exception.class) 用于两个 daoimpl 类

c# - 如何调试 soap web 服务?

java - 如何将变量作为 API 中的值传递。我使用地理编码 API。但我无法获取位置

api - 给定一个 Youtube 视频 ID,检查它是否为有效视频的最快方法是什么?

Java - 等待并通知所有

java - Android NFC mimeType 被忽略,应用程序始终在与标签或光束设备接触时启动