我有一个返回List<MyPojo>
的Jersey控制器(它实际上正在返回ArrayList
。我的pom包含jersey-server
,所以我自动获得jersey-media-jaxb
和我已经证实我的战争确实包含了这种依赖性。
端点标记为:
@Produces(value={MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
当我点击它时没有指定accept
(或使用application/json
)我没有问题就回来了JSON。但是当我指定'accept = application / xml`时,我得到:
MessageBodyWriter not found for media type=application/xml, type=class java.util.ArrayList, genericType=java.util.List<MyPoJo>
不确定是否重要,但我使用的是Spring引导,但由于版本问题,我没有使用jersey starter。
更新
注意:这使用了Spring MVC,默认输出是XML。
我无法复制/粘贴方法,但这里是大纲 方法:
@Get
@Path("/since")
@Produces(value={MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public List<MyMetadata> since(){
return callService(paramaters);
}
// The below pre-existed me
public class MyMetadata{
private String id;
@JsonSerialize(using=DateTimeSerializer.class)
@JsonDeserialize(using=MyDateTimeDeserializer.class)
private DateTime startTime;
private List<String> ids;
private List<OtherPojo> uuids;
private SecurityPojo security;
private Set<MyTuples> ads;
}