Хотя ответ Квентина является хорошим указателем в правильном направлении, он не специфичен для jax-rs.
Спецификация jax-rs определяет аннотацию @Produces в разделе 3.5 * 1005.*
Классы приложений могут объявлять поддерживаемые типы медиа запросов и ответов, используя аннотации @Consumes и 23 @Produces соответственно.Эти аннотации МОГУТ применяться к методу ресурса, классу ресурса 24 или к поставщику сущности (см. Раздел 4.2.3).Использование этих аннотаций в методе ресурса переопределяет 25 для любого класса ресурса или провайдера сущности для аргумента метода или возвращаемого типа.При отсутствии 26 из этих аннотаций предполагается поддержка любого типа носителя (« / »).
Тип mime, объявленный с помощью @Produces, автоматически сопоставляется с Заголовок HTTP-запроса на принятие запроса.Это означает, что для разграничения клиентских запросов вы можете определять методы ресурсов с различными объявлениями @Produces.
В моем случае мне понадобился метод, который возвращал xml, и метод, который возвращал html, поэтому я объявил два метода в ресурсе / отчетах:
@GET
@Produces({MediaType.TEXT_HTML})
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public String getReportsAsHtml(){...}
И
@GET
@Produces({MediaType.APPLICATION_XML})
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public List<Report> getReportsAsXml() {...}
Пожалуйста, обратитесь к комментарию Квентина о настройках Accept Header для заключительной части головоломки