gpt4 book ai didi

rest - 当 jersey 无法映射查询参数时,出现 404 失败,为什么会这样?

转载 作者:行者123 更新时间:2023-12-01 08:01:30 24 4
gpt4 key购买 nike

我不是任何 Jersey 大师,但我读到 Jersey 无法根据查询参数解析 java 方法,但有时看起来确实如此,这是我的示例。

这是服务器代码:

@GET
@Path("/services")
public String getAll(
@QueryParam("limit") Integer limit,
@QueryParam("offset") Integer offset){
return "1 2 3";
}

这是客户端代码:
ClientResponse response = webResource
.path("services")
.queryParam("limit", "ab")
.get(ClientResponse.class);
logger.info(response.toString());
assertEquals(response.getStatus(), 200);

看起来 Jersey 不喜欢“ab”并且无法映射查询参数,因此它返回 404,但是如果 limit =“1”,我可以找到正确的方法。

jersey 在这种情况下返回 404 是否正确?我知道我可以使用 String 而不是 Integer 来扩展接口(interface)以覆盖任何可行的 sintax 错误的所有处理。我可以配置 jersey 代表我执行此操作吗?

我正在使用服务器:grizzly/1.9.18,jersey 1.11

谢谢!

最佳答案

目前这在 Jersey 是不可能的。也许我们可以想出一个功能来使它更友好。可以将诸如 @ErrorParam 注释之类的东西附加到参数上。如果存在此类参数并且某些 QueryParam 转换失败,则查询参数将使用默认值填充,并且错误参数的真实字符串值将添加到使用 @ErrorParam 注释的参数中传递的名称-值映射中?

@GET
@Path("/services")
public String getAll(
@QueryParam("limit") Integer limit,
@QueryParam("offset") Integer offset,
@ErrorParam MultivaluedMap<String, String> typeErrors) {

if (!typeErrors.isEmpty()) {
// do something
}

return "1 2 3";
}

我在这里提交了 RFE:http://java.net/jira/browse/JERSEY-1263

如果您有意见,请发表评论。

关于rest - 当 jersey 无法映射查询参数时,出现 404 失败,为什么会这样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11242983/

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