簡體   English   中英

XMLRootElement在JAVA Jersey RESTful中無法刪除

[英]XMLRootElement failing for DELETE in JAVA Jersey RESTful

好的,所以我正在使用Jersey使用Java構建RESTful服務。

我已經實現了POST,它工作得非常好,它在數據庫的Category表中創建了新行。 現在,當我嘗試執行DELETE時,我將其傳遞給JSON的同一行,但它返回"400: Bad Request - the request cannot be fulfilled due to bad syntax"

我很困惑,因為從該特定類別上執行GET時得到的結果中復制並粘貼了JSON。

以下是相關代碼:

@Path("/categories/")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public class CategoryResource {

@POST
public Response addCategory(Category category, @Context UriInfo uriInfo)
{
    JSONArray json_array = category_service.addCategory(category);
    URI uri = uriInfo.getAbsolutePathBuilder().path(category.getCategory_name()).build();
    return Response.created(uri)
            .status(Status.CREATED)
            .entity(json_array.toString())
            .build();
}

@DELETE
public Response deleteCategory(Category category)
{
    System.out.println("Category = " + category.toString());
    category_service.deleteCategory(category);
    return Response.ok().build();
}

system.out.println()永遠不會執行,因為它似乎無法對類別進行編碼。 這里是Category類,其中充滿了常用的getter和setter:

@XmlRootElement
public class Category {

private int category_id;
private String category_name;
private boolean child;
private int parent_id;
private boolean category_state;
private String category_reason;

public Category() {

}

原始中傳遞的JSON如下所示:

{
  "category_id": 1,
  "category_name": "tennis",
  "child": true,
  "parent_id": 4,
  "category_state": true,
  "category_reason": "I Like Tennis"
}

請注意,這已從GET的結果中復制並粘貼。

因此,正如peeskillet的評論中明確指出的那樣,使用DELETE不會給任何身體。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM