消息:找不到类型为java的响应对象的MessageBodyWriter。util。媒体类型的数组列表:application/json
描述:服务器遇到内部错误(找不到类型为java.util.ArrayList,媒体类型为application/json的响应对象的MessageBodyWriter),导致其无法满足此请求
@GET
@Path("/{userName}/questions")
//@Produces("application/json")
public Response getUserQuestions(@PathParam("userName") String userName){
UserDAO userDAO = new UserDAO();
List<Question> questions = userDAO.getUserQuestionsByUserName(userName);
GenericEntity<List<Question>> entity = new GenericEntity<List<Question>>(questions){};
return Response.status(200).entity(entity).type(MediaType.APPLICATION_JSON).build();
}
我在类路径中找到了resteasy jackson提供程序。尝试将返回类型表单ArrayList
更改为List
,然后基于resteasy响应将其包装为GenericEntity
,但仍然遇到相同的问题。
在tomcat7上运行。
谢谢
在ArrayList中使用的类中添加@XMLRootElement解决了同样的问题
最终解决了这个问题,使用的是Gson库
,而不是依赖json。也没有封装在泛型实体中。下面是有效的代码
@GET
@Path("/{userName}/questions")
public Response getUserQuestions(@PathParam("userName") String userName){
UserDAO userDAO = new UserDAO();
List<Question> questions = userDAO.getQuestionsByUserName(userName);
Gson gson = new GsonBuilder().setExclusionStrategies(new UserQuestionsExclStrat()).create(); //.serializeNulls()
String json = gson.toJson(questions);
System.out.println(json);
return Response.status(200).entity(json).build();
}
不得不使用排除策略来避免循环引用。下面是链接:json转换期间的stackoverflow错误(hibernate双向映射)
我通过添加resteasy jackson提供者解决了这个异常。jar到类路径引用https://bitbucket.org/arcbees/gaestudio/issue/2/need-resteasy-jackson-provider-on
你知道吗? 谢谢,米凯尔
我在使用JAX-RS服务作为JSON时遇到了一些问题。
问题内容: 我正在使用Jetty进行小型的RESTful服务。使用Maven作为构建工具。 当我尝试调用试图访问对象的JSON表示形式的GET方法时,出现“ MessageBodyWriter”错误。有问题的方法如下, GtfsRtFeedModel的GtfsRtFeedModel如下, 我的Maven文件包括以下内容以及码头依赖项, 大部分类似的问题似乎已通过添加和所需的依赖关系得以解决。但是由
我试图在JBoss7.2中创建一个JAX-RS示例。我得到如下错误消息。 谢谢和问候,拉姆。
我正在尝试遵循Jersey文档,以便在发生错误时启用非200响应(https://Jersey.java.net/documentation/latest/representations.html#D0E3586) 我的代码看起来像: 不幸的是,这会产生以下错误: [2015-02-01T16:13:02.157+0000][glassfish 4.1][严重][][org.glassfish.j
问题内容: 我有一个宁静的服务(发布),它消耗(application / json)并产生(application / json)。此服务的单个参数是带注释的java对象。 我正在使用org.jboss.resteasy.client.ClientRequest将请求发送到服务。但是,我在客户端得到了这个异常和异常: 找不到内容类型应用程序/ json类型的编写器。 这是否意味着我缺少一些库ja