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