【问题标题】:Using Jax-Rs @Get @Post on same method在相同的方法上使用 Jax-Rs @Get @Post
【发布时间】:2015-12-20 09:49:47
【问题描述】:

是否允许在相同的 REST 服务方法上使用 @Get @Post 或其他 @HttpMethod?我知道 Jersey 返回异常,但我只想知道 JAX-RS API,没有别的。

JAX-RS API 是否允许这样做?

编辑:我问这个问题,因为我在规范或文档中没有找到任何关于此的内容。

【问题讨论】:

  • “允许”是什么意思?你测试过它是否有效吗?
  • 我指的是 JAX-RS API,而不是框架。
  • 这不能回答我的问题!

标签: java post get annotations jax-rs


【解决方案1】:

http://download.oracle.com/otndocs/jcp/jaxrs-2_0_rev_A-mrel-spec/index.html 的 JAX-RS 规范似乎根本没有指定这种情况。在第 3.3 节中,它说“资源方法是用 a 请求方法指示符注释的资源类的方法”——我强调“a”这个词。 @Get 和@POST 是请求方法指示符的示例。 第 3.7.2 节描述了如何选择响应请求的方法,只是说过滤掉“支持请求方法”的方法。

所以我认为您在规范中发现了一个灰色区域,显然 JAX-RS 参考实现的创建者选择不支持您的用例。

你需要重构:

@GET
public void yourGetMethod() {
    yourMethod();
}

@POST
public void yourPostMethod() {
    yourMethod();
}

public void yourMethod(...

【讨论】:

  • 谢谢!这就是我想听到的答案:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-20
  • 1970-01-01
  • 1970-01-01
  • 2012-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多