org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure: не удалось найти MessageBodyWriter для ... тип носителя: application / xml; charset = UTF-8 - PullRequest
0 голосов
/ 03 июля 2018

Я написал серию сервисов JAX-RS, которые развернуты в файле WAR в Wildfly 11. У меня есть аннотация @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }), указывающая, что я хочу получить JSON или XML в качестве ответа от сервиса , У меня есть ряд объектов передачи данных с аннотациями JAXB. Это объекты, которые будут возвращены моим сервисом. Я тестировал с использованием JSON, и все работает, как ожидалось. Однако, когда я пошел на тестирование с использованием заголовка "Accept: application/xml", чтобы получить обратно XML, я получил следующее исключение в моих журналах:

org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure: не удалось найти MessageBodyWriter для объекта ответа типа: com.test.MyObject Тип мультимедиа: application / xml; charset = UTF-8

Я не уверен, откуда взялся ;charset=UTF-8. Я не указываю это в моем заголовке Accept. Я также нигде не вижу ;charset=UTF-8, когда использую application/json в качестве типа Accept. Кроме того, я регистрирую все мои заголовки запросов и не вижу, чтобы ;charset=UTF-8 появлялся где-либо, так что это определенно не то, что добавляется с моей стороны.

Кто-нибудь сталкивался с этим раньше? Я знаю, что нет, поэтому я не знаю, почему это происходит. Есть мысли?

1 Ответ

0 голосов
/ 10 июля 2018

Убедитесь, что ваш объект передачи данных (например, com.test.MyObject) помечен @XmlRootElement, а не @XmlElement. Если нет, то это может быть причиной ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...