4

我有这个返回 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。

我不明白是什么问题。

提前致谢

4

1 回答 1

1

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

于 2015-07-25T16:46:11.473 回答