HTTP状态405 - 使用WebServices调用DELETE方法时出现方法不允许错误

时间:2012-10-01 12:25:34

标签: java web-services rest jersey jax-rs

我正在尝试使用以下@DELETE方法从“Contacts”表中删除“Contact”(使用Jersey Framework(JAX-RS实现)

@DELETE
@Path("/delete/{contact}")
public String deleteContact(@PathParam("contact") String name) throws ClassNotFoundException, SQLException {

    String response = DAOaccess.deleteContact(name);
    return response; 
}

以下网址用于从浏览器调用网络服务:

/联系人/删除/ CONTACTNAME

但是这样做会引发HTTP状态405 - 不允许的方法

可能是什么原因?我该如何克服这个问题?

2 个答案:

答案 0 :(得分:7)

网址 = / contacts / delete / contactname

405因为

似乎删除始终表现为submit (Post method) 并且您尝试从get调用URL方法。 This is not possible to call the post method as like get。 如果您真的想从浏览器中调用此Web服务进行测试,只需下载Mozilla plugin (Poster)即可帮助您以所有方法类型提交Web服务。

答案 1 :(得分:2)

如果您使用的是Firefox,请使用this插件来测试您的服务。当您从浏览器直接点击URL时,它将作为@GET请求进行,在这种情况下是不允许的。 RestClient也可作为独立应用提供。如果您需要更多功能,请尝试SoapUI。我还发布了对您question on @DELETE的回复。