gpt4 book ai didi

java - RESTEASY002142 : Multiple resource methods match request

转载 作者:搜寻专家 更新时间:2023-11-01 01:49:28 25 4
gpt4 key购买 nike

我正在关注两个完全不同的 URL,我无法解释原因:

RESTEASY002142: 

Multiple resource methods match request "GET /devices/distinctValues/3".
Selecting one.

Matching methods:
[public javax.ws.rs.core.Response
mypackage.DevService.getDistinctValues(int) throws java.lang.Exception,

public javax.ws.rs.core.Response
mypackage.DevRESTService.getDevice(int,java.lang.String)
throws java.lang.Exception]

不应出现此警告,因为 URLS 完全不同。如果有人知道为什么会这样:

两种方法的网址:

获取设备:

@GET
@Path("devices/{customerId}/{deviceIds}")
@Produces({ "application/json" })

getDistinctValues:

@GET
@Path("devices/distinctValues/{customerId}")
@Consumes("application/json")
@Produces("application/json")

最佳答案

出现警告是因为您的请求字符串可以匹配两个路径模板。请求 "devices/distinctValues/3"

  • customerId = "3"
  • 中匹配 devices/distinctValues/{customerId}
  • customerId = "distinctValues"deviceIds = "3" 中匹配 devices/{customerId}/{deviceIds}。<

There is no type resolution由于您的请求是 String,因此无法告诉 customerId 它不能接受 "distinctValues"

作为变通方法,您可以指定链接问题中所示的正则表达式,或使用 RESTEasy proxy framework它基本上是服务器(您的 JAX-RS 资源)和客户端都使用的共享接口(interface),然后您拥有一种带有类型解析的通用语言。请注意,文档示例中有一个拼写错误。

关于java - RESTEASY002142 : Multiple resource methods match request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46081787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com