在相同的方法上使用Jax-Rs @Get @Post

时间:2015-12-20 09:49:48

标签: java post get annotations jax-rs

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

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

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

1 个答案:

答案 0 :(得分:3)

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(...