没有调用Resteasy @POST注释方法

时间:2013-02-24 05:08:26

标签: annotations jax-rs resteasy

我正在使用Resteasy 2.3.5。当我在浏览器中请求其网址@POST时,永远不会调用以下http://localhost:8080/MyApp/rest/echo/foobar带注释的方法:

@POST
@Path("/echo/{msg}")
@Produces("text/plain; charset=UTF-8")
public String echo(@PathParam("msg") final String msg) {
    return msg;
}

但是,当我将@POST替换为@GET时,它运行正常(浏览器返回foobar)。有什么问题?

2 个答案:

答案 0 :(得分:2)

这是因为您键入URL时浏览器将始终执行GET请求 尝试下载cURL之类的HTTP客户端工具。然后从命令行环境运行以下测试:

curl "http://localhost:8080/MyApp/rest/echo/foobar" -X POST

您可以使用任何HTTP方法,标题等。试一试。

答案 1 :(得分:1)

@POST注释引用HTTP POST请求方法。您的Web浏览器通常只会发出GET HTTP请求方法,这就是为什么您的示例在更改为@GET时有效。您可以使用许多工具来帮助您测试REST服务,其中一些工具可以直接在浏览器中运行。

对于Firefox,请尝试https://addons.mozilla.org/en-us/firefox/addon/restclient/

对于Chrome,请尝试https://chrome.google.com/webstore/detail/rest-console/cokgbflfommojglbmbpenpphppikmonn?hl=en

你也可以看到 What tools do you use to test your public REST API?