В нашем приложении есть рабочий метод, который возвращает JSON-представление Company.Я изменил @Produces, добавив MediaType.APPLICATION_XML.Однако, когда я устанавливаю заголовок «Принять» в запросе «application / xml», Джерси возвращает «Неверный запрос» 400.
@GET
@Path("{unique_id}")
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public Response getCompanyDetail(@PathParam("unique_id") long id, @QueryParam("view") final String view, @Context UriInfo ui) {
Это сообщение журнала:
2011-09-07 12:35:58,279 ERROR [STDERR] Sep 7, 2011 12:35:58 PM com.sun.jersey.spi.container.ContainerResponse write
SEVERE: A message body writer for Java type, class com.dnb.applications.webservice.rest.view.response.GetCompanyDetailResponse, and MIME media type, application/xml, was not found
......
Тем не менее, JSON работает нормально.
Вот взрывающаяся строка:
return responseBuilder.entity(vo).build();
'vo'это наш JAXB-аннотированный объект просмотра.Он аннотируется @XmlType.
Если мы хотим добавить поддержку XML, это правильный подход?Я думал, что у Джерси был поставщик XML, и он по умолчанию обрабатывал XML.
Есть ли проблемы с построением ответа для JSON и XML одним и тем же методом?