我的代码包含几个不同的DELETE方法,其中一个采用参数,或者至少理想情况下会采用参数。但是,当我通过CURL或通过Web客户端发出此请求时,它不起作用。其他DELETE请求函数正常,我已经在我想传递的参数中进行了硬编码,只是为了查看调用是否有效而且确实如此。我用PathParam和QueryParam尝试了这个,但都没有用。这是我使用PathParams的方式,我非常肯定是正确的,QueryParams看起来非常相似,所以我也不想发布它。
@DELETE
@Path("/byId/{id}")
public void deleteById(@PathParam("id") String id)
然后对于QueryParams基本上是相同的事情,但显然路径是不同的
根据我的理解,许多RESTful API会忽略带有DELETE请求的任何类型的请求体,或者将其视为PUT或POST。有没有办法解决?基本上我有一个包含多个对象的数据库,我需要根据唯一标识符删除一个对象,由客户端传入。如果没有办法解决这个问题还有其他方法吗?
我可能错过了一些明显的东西,因为我现在只使用Jersey几周了,直到现在还没有听说过RESTful服务的概念。
答案 0 :(得分:0)
您可以将信息作为标头,路径参数,查询参数或邮件正文发送到RESTful服务。
如果所有值都按预期运行,则jax-rs / jersey没有问题。现在您需要调试代码并修复您的实现。 jax-rs只会将DELETE调用与您实现的DELETE http方法匹配。
然后,您有责任在方法中实际执行资源的DELETE操作。如果你没有删除或者你在方法中做了其他的动作,jax-rs或jersey不会抱怨。