RESTful webservices DELETE returns 400 错误请求但 GET 有效
RESTful webservices DELETE returns 400 Bad Request but GET works
我正在尝试发送删除请求,但它不起作用。奇怪的是,如果我只是将@DELETE 更改为@GET,它就会起作用。
@Stateless
@Path("orders")
public class OrderRestful {
@Inject
BestellungRepository bestellrepo;
@DELETE
@Path("{id}")
public Response deleteBestellung(@PathParam("id") long id){
Bestellung b = bestellrepo.getBestellungById(id);
if(b == null){
return Response.status(Status.NOT_FOUND).build();
}
bestellrepo.deleteBestellung(b);
return Response.noContent().build();
}
}
因为它与@GET 一起工作正常所以我知道代码本身不是问题。我想我缺少的地方存在语法问题,但我不知道在哪里。我正在使用 glassfish 5,它是一个 jersey 项目。
编辑:我试着让它成为一个无效的方法。没用。我试过不使用路径。没用。
事实证明,代码本身并没有错。我测试它的工具是。我使用 Chrome 的 Advanced Rest Client 对其进行了测试,它抛出了错误的请求。当我使用 RestClient for Firefox 对其进行测试时,它可以正常工作。所以问题现在解决了:)
我正在尝试发送删除请求,但它不起作用。奇怪的是,如果我只是将@DELETE 更改为@GET,它就会起作用。
@Stateless
@Path("orders")
public class OrderRestful {
@Inject
BestellungRepository bestellrepo;
@DELETE
@Path("{id}")
public Response deleteBestellung(@PathParam("id") long id){
Bestellung b = bestellrepo.getBestellungById(id);
if(b == null){
return Response.status(Status.NOT_FOUND).build();
}
bestellrepo.deleteBestellung(b);
return Response.noContent().build();
}
}
因为它与@GET 一起工作正常所以我知道代码本身不是问题。我想我缺少的地方存在语法问题,但我不知道在哪里。我正在使用 glassfish 5,它是一个 jersey 项目。
编辑:我试着让它成为一个无效的方法。没用。我试过不使用路径。没用。
事实证明,代码本身并没有错。我测试它的工具是。我使用 Chrome 的 Advanced Rest Client 对其进行了测试,它抛出了错误的请求。当我使用 RestClient for Firefox 对其进行测试时,它可以正常工作。所以问题现在解决了:)