我需要以下方面的帮助 - 首先,这是我得到的错误:
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;)构建响应时,我实际上有这个错误 - 但是其他各种人在这里问过类似的问题,并且都被告知按照我上面的方式把它变成一个通用的实体...然而,它似乎对我没有任何影响。
这里有人为我提供了一些意见吗?
答案 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();
}