[英]@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.