2013-07-25 33 views
0

我有一個JAX-RS資源類,對於其中一種方法,我想綁定一個代表JSON POST的簡單Map<String, String>服務器,而不是爲這樣一個簡短的請求創建一個實體類。我想我可以做到以下幾點:在Jackson的JAX-RS資源中綁定一個簡單的Map <String,String>

@POST 
public Response create(Map<String, String> json) { 
    //business logic... 
    return Response.created(UriBuilder.fromPath("{id}").build(id)).build(); 
} 

但是當我打的端點捲曲,我得到一個415不支持的媒體類型。有沒有辦法允許這樣的簡單綁定,還是我需要實際註釋的POJO?

回答

0

假設你不想寫自己的MessageBodyReader告訴框架如何將JSON轉換爲一個通用的Map,你仍然可以接受String,用傑克遜來讀它作爲:

@POST 
public Response create(String json) { 
    Map<String,Object> map = new ObjectMapper().readValue(json, Map.class); 
    //business logic... 
    return Response.created(UriBuilder.fromPath("{id}").build(id)).build(); 
} 
+0

的實際的問題實際上是一個配置問題,但在我想出來之前,你的解決方案作爲替代方案工作,所以我接受它。 –

+0

恩,謝謝。你可以用配置問題(解決方案)更新問題嗎? –

相關問題