HTTP删除,响应状态:405(不允许方法)

时间:2015-01-31 19:28:40

标签: java jax-rs

将http删除发送到我的服务器时会发生这种情况

Response Status: 405 (Method Not Allowed)
标题看起来像这样

Date: Sat, 31 Jan 2015 19:17:47 GMT
Server: WildFly/8
Connection: keep-alive
X-Powered-By: Undertow/1
Content-Length: 0
Allow: HEAD, POST, GET, OPTIONS, PUT

我怀疑我必须启用http删除方法,但不知道如何。

这是我的删除方法

@DELETE
@Path("/{id}")
public boolean deleteItem(@PathParam("id") long itemId);

这是删除的网址

wrong: http://192.168.2.101:8080/DataAccessRemoteWebapp/rest/dataitem/id=1

right: http://192.168.2.101:8080/DataAccessRemoteWebapp/rest/dataitem/1

我正在使用jax-rs

import javax.ws.rs.DELETE;

2 个答案:

答案 0 :(得分:3)

注释@Path("/{id})"需要在id之后直接/,因此它与您的测试网址不匹配

http://192.168.2.101:8080/DataAccessRemoteWebapp/rest/dataitem/id=1

相反,请删除id=

http://192.168.2.101:8080/DataAccessRemoteWebapp/rest/dataitem/1

答案 1 :(得分:1)

stackoverflow上的旧post可以回答您的问题:

  

网址= / contacts / delete / contactname

     

405因为

     

似乎删除总是表现为提交(Post方法)而你就是   尝试>从URL调用get方法。这是不可能的   像get一样调用> post方法。如果你真的想打个电话   来自>浏览器的web服务进行测试,只需下载一个Mozilla插件即可   (海报)将帮助您在所有人中提交网络服务   方法类型。