簡體   English   中英

@PathParam沒有給我路徑變量

[英]@PathParam doesn't get me the path variable

我有一個POST方法(需要一些JSON數據)。 我還想訪問路徑參數“ id”進行處理。 但是,當我使用“ @PathParam”時,我得到了傳遞給請求的JSON正文。 下面是我的代碼:

@Path("/products")
public class PurchaseService {

    @POST
    @Consumes("application/json")
    @Path("{id}/purchase")
    @Produces(MediaType.APPLICATION_JSON)
    public String doPurchaseForUser(@PathParam("id") String id) {
        String result = null;
        System.out.println("Product : " + id);
        return id;
    }
}

如果我以-{“ user_id”:123}的形式傳遞POST正文,則上面代碼中的id變量將保存此值,而不是URI中的id值。 我究竟做錯了什么 ?

當使用@Consumes ("application/json")注釋方法時,這意味着您正在告訴您的Web服務:此方法正在等待json格式的對象作為參數。 這就是為什么您的String id使用json內容的原因。

@Path("/products")

公共類PurchaseService {

@POST
@Consumes("application/json")
@Path("/purchase")
@Produces(MediaType.APPLICATION_JSON)
public String doPurchaseForUser(@QueryParam("id") String id,JsonObject jsonContent) {
    String result = null;
    System.out.println("Product : " + id);
    return id;
}

}

您的通話網址將如下所示localhost:8080/ShoppingSocieties/Shopping/products/purchase?id=1

您正在導入錯誤的@PathParam 它應該是javax.ws.rs.PathParam 您可能正在導入websocket一個(當您具有javaee-api依賴項時,這是一個常見錯誤)。

暫無
暫無

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

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