gpt4 book ai didi

java - Jersey @GET 方法不适用于 2 个路径参数

转载 作者:太空宇宙 更新时间:2023-11-04 12:39:19 27 4
gpt4 key购买 nike

在我的 Jersey REST 界面中,有两种方法(除其他外):

@GET
@Path("{scenarioId}/instance")
@Produces(MediaType.APPLICATION_JSON)
public Response getScenarioInstances(
@Context UriInfo uri,
@PathParam("scenarioId") int scenarioId,
@QueryParam("filter") String filterString) {
// code here
return Response.ok(result.toString(), MediaType.APPLICATION_JSON).build();
}

@GET
@Path("{scenarioId}/instance/{instanceId}")
@Produces(MediaType.APPLICATION_JSON)
public Response getScenarioInstance(
@Context UriInfo uri,
@PathParam("scenarioId") int scenarioId,
@PathParam("instanceId") int instanceId) {
// code here
return Response.ok(result.toString(), MediaType.APPLICATION_JSON).build();
}

通过 Postman 向/2/instance 发出 GET 请求,调用第一个方法并生成包含所有实例的 JSON 对象。

一个 GET 请求,例如但是/2/instance/2 不会调用第二个方法,并导致 404 错误。

我在第二种方法中遗漏了什么吗?

最佳答案

好吧,问题是,REST 接口(interface)分布在多个类中,并且另一个类具有 @Path(".../{scenarioId}/instance/{instanceId}) 注释。我将方法移到那里,然后调用它。显然这会导致冲突,即使在此类中没有直接为此路径声明 @GET 方法。

回想起来,我可能应该在问题中添加这个细节。

关于java - Jersey @GET 方法不适用于 2 个路径参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36982276/

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