未找到ArrayList和我的List <customtype>的消息正文编写器和MIME媒体类型application / xml?

时间:2017-01-23 19:03:47

标签: java xml spring jax-rs

我需要以下方面的帮助 - 首先,这是我得到的错误:

SEVERE: A message body writer for Java class java.util.ArrayList, and Java type java.util.List<CustomType>, and MIME media type application/xml was not found

这是我写的端点:

@GET
@Path("/getListOfObjects")
@Produces(MediaType.APPLICATION_XML)
public Response getListOfObjects()
{
    List<CustomType> results = customTypeService.getListOfObjects();

    GenericEntity<List<CustomType>> genericList
    = new GenericEntity<List<CustomType>>(results){};

    return Response.ok(genericList).build();
}

现在,我将补充一点,当我尝试使用初始列表(&#34;结果&#34;)构建响应时,我实际上有这个错误 - 但是其他各种人在这里问过类似的问题,并且都被告知按照我上面的方式把它变成一个通用的实体...然而,它似乎对我没有任何影响。

这里有人为我提供了一些意见吗?

2 个答案:

答案 0 :(得分:1)

如果未使用JAXB注释正确注释自定义类型以允许XML编组,则通常会发生此错误。

尝试将@XmlRootElement添加到类声明中,同时绑定成员字段:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement
public class CustomType {
   long id;
   String name;

   ...
}

答案 1 :(得分:0)

您可以尝试Response.ok().entity(genericList).build(),因为:

@GET
@Path("/getListOfObjects")
@Produces(MediaType.APPLICATION_XML)
public Response getListOfObjects(){
        List<CustomType> results = customTypeService.getListOfObjects();
        GenericEntity<List<CustomType>> genericList= new GenericEntity<List<CustomType>>(results){};
        return Response.ok().entity(genericList).build();
}