找不到类型的响应对象的MessageBodyWriter:媒体类型的java.util.LinkedHashMap:application / json

时间:2012-08-27 13:15:16

标签: java json tomcat jboss resteasy

我有这个返回JSON代码的REST服务:

@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:application / json。

我不明白是什么问题。

提前致谢

1 个答案:

答案 0 :(得分:0)

您如何部署应用程序?你使用什么应用服务器?什么版本的RestEasy?您指定了哪些RestEasy配置(在web.xml或Application类中)? Resteasy依赖于提供程序对对象进行序列化/反序列化。 这些提供程序需要包含在JAX-RS应用程序的类路径中。根据您的构建,应用程序打包和运行时环境,这些提供程序可能会丢失。此外,可以配置提供者的发现,例如,自动发现类路径中的所有privoders,或仅使用conf中明确提到的那些。具有application / json功能的常用提供程序是 resteasy-jackson-provider resteasy-jettison-provider 。验证类路径中是否至少有其中一个可用。