RESTEasy在@DELETE方法中将null值作为形式参数给出

时间:2014-02-09 14:26:46

标签: java rest resteasy

我正在使用REASTEasy设计restful Web服务API。我有一个工作流程,我必须删除资源中的多个项目。 Web服务签名看起来像这样

@DELETE
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.APPLICATION_JSON)
@Path("/directories/{directoryname}/documents")
public Response deleteDocuments(@FormParam("documentnames")final String documents, @PathParam("directoryname")final String directoryName)

我正在提出以下请求

DELETE /directories/1234/documents HTTP/1.1
Host: localhost:8080
Cache-Control: no-cache
Postman-Token: 45c0094f-1853-5710-2201-a1102a6acef0
Content-Type: application/x-www-form-urlencoded

documentnames=test

但是当调用该方法时,表单参数“documentnames”的值为null,即使我将其值传递给test,如请求中所示。

1 个答案:

答案 0 :(得分:0)

再次查看您的注释:

@Path("/directories/{directoryname}/documents")
public Response deleteDocuments(@FormParam("documentnames")final String documents, @PathParam("directoryname")final String directoryName)

@PathParam("directoryname"){directoryname}定义中引用@Path,而@FormParam("documentnames")应从表单请求中获取数据。但是,如果没有表单参数,则执行HTTP DELETE。至少我没有看到你已发送的捕获。

您是否也想将目录作为路径参数发送?