2012-08-27 84 views
4

我有一個返回JSON代碼這個REST服務:找不到MessageBodyWriter類型的響應對象:媒體類型的java.util.LinkedHashMap中:應用程序/ JSON

@GET 
@Path("/mypath") 
@Produces(MediaType.APPLICATION_JSON) 
public Response getS() { 
    Map<String, String> map = new LinkedHashMap<String, String>(); 

    map.put(key1, val1); 
    map.put(key2, val2); 

    return Response.ok(map, MediaType.APPLICATION_JSON).build(); 
} 

此服務被部署在Tomcat服務器。我正在使用RESTeasy作爲框架。當試圖訪問該服務,我會遇到這樣的:

找不到MessageBodyWriter類型的響應對象: java.util.LinkedHashMap中的媒體類型:應用程序/ JSON。

我不明白是什麼問題。

在此先感謝

+0

http://docs.jboss.org/resteasy/docs/2.3.3.Final/userguide/html_single/index.html#JAXB_Map – eiden

+0

您是否嘗試直接返回'Map '而不是'響應'對象? – Flavio

+0

這可能有所幫助:https://community.jboss.org/thread/191022?_sscc=t – sfat

回答

0

如何部署您的應用程序?你使用什麼應用程序服務器?什麼版本的RestEasy?你指定了什麼RestEasy配置(在web.xml或Application類中)? Resteasy依靠提供者來對對象進行序列化/反序列化。 這些提供程序需要包含在JAX-RS應用程序的類路徑中。根據您的構建,應用程序打包和運行時環境,這些提供程序可能會丟失。此外,可以配置providres的發現,例如,自動發現classpath中的所有privoders,或只使用conf中明確提到的那些。具有application/json功能的常用提供商是resteasy-jackson-provider,resteasy-jettison-provider。驗證其中至少有一個在你的類路徑中可用。

相關問題