理解できない奇妙な動作を見つけました。
私は4つの同様の例をテストしました:
1
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response produce() {
List<Book> books = Arrays
.asList(new Book[] {
new Book("aaa", "AAA", "12345"),
new Book("bbb", "BBB", "09876")
});
return Response.ok(books).build();
}
2
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<Book> produce() {
List<Book> books = Arrays
.asList(new Book[] {
new Book("aaa", "AAA", "12345"),
new Book("bbb", "BBB", "09876")
});
return books;
}
3
@GET
@Produces(MediaType.APPLICATION_XML)
public List<Book> produce() {
List<Book> books = Arrays
.asList(new Book[] {
new Book("aaa", "AAA", "12345"),
new Book("bbb", "BBB", "09876")
});
return books;
}
4
@GET
@Produces(MediaType.APPLICATION_XML)
public Response produce() {
List<Book> books = Arrays
.asList(new Book[] {
new Book("aaa", "AAA", "12345"),
new Book("bbb", "BBB", "09876")
});
return Response.ok(books).build();
}
すべてが#1、#2、#3で機能しますが、4番目の例がスローされます:
タイプ: java.util.Arrays$ArrayList のメディア タイプ: application/xml の応答オブジェクトの MessageBodyWriter が見つかりませんでした。
私は Wildfly 9 で実行していますが、一般的に RestEasy または JaxRS に関連しているのでしょうか? コレクションを GenericEntity でラップすることで修正できることはわかっていますが、この一貫性のない動作がわかりません。