java - jax-rs 路由优先级冲突

标签 java routes jax-rs

我在 Spring 中使用 jax-rs。我有 2 个 PUT API,它们存在冲突,我想优先使用其中一个。

@PUT
@Path("/allQuestions")
public Response method1() {}

@PUT
@Path("/{qustionId}")
public Response method2(@PathParam("qustionId") long qustionId) {}

当我调用 /allQuestions 时,应用程序总是尝试将“allQuestions”字符串插入到 method2qustionId 中,所以我想优先考虑method1

我该怎么做?

最佳答案

问题是 method1 之前缺少 @Consumes({ MediaType.APPLICATION_JSON }) 行。完整代码是:

@PUT
@Path("/availableQuestions")
@Produces({ MediaType.APPLICATION_JSON })
public Response method1() {}

@PUT
@Path("/{questionId}")
@Produces({ MediaType.APPLICATION_JSON })
@Consumes({ MediaType.APPLICATION_JSON })
public Response method2(@PathParam("questionId") long questionId) {}

我不确定为什么(编辑:请参阅 @peeskillet 评论以获取解释),但现在我已经添加了 @Consumes({ MediaType.APPLICATION_JSON }):

@PUT
@Path("/availableQuestions")
@Produces({ MediaType.APPLICATION_JSON })
@Consumes({ MediaType.APPLICATION_JSON })
public Response method1() {}

它确实有效。

关于java - jax-rs 路由优先级冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28714135/

相关文章:

java - 如何使用 "?"no get Path Rest?

java - JPA 鉴别器 SINGLE_TABLE 继承

java - 在执行复制 block 之前,将一个 ArrayList 中的对象保存在另一个 ArrayList 中

java - 找不到可接受的表示 - 406 Not Acceptable 错误

asp.net - asp.net 4.0 应用程序中的 Page.GetRouteUrl() 错误。 URL 路由的任何帮助

java - 在 tomcat webapp 中引用可变的外部 web 服务 url

java - URL编码的设计方案

ruby-on-rails-3 - 如何使用带有 devise 和 omniauth 的动态范围

带有常量的 c# MVC 路由

java - Resteasy 可以查看 JAX-RS 方法的参数类型吗?