Java, Джексон, конвертировать объект в xml, проблема с недопустимыми символами - PullRequest
0 голосов
/ 18 апреля 2019

Я пытаюсь преобразовать объект в XML с помощью Джексона

XmlMapper xmlMapper = new XmlMapper();
            xmlMapper.configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true);
            xmlMapper.writeValue(createFileResult.getFile(), detailsProductDTOs);

однако, поскольку мой объект где-то содержит недопустимый символ для xml, я получаю ошибку. Есть ли какой-нибудь способ сказать Джексону игнорировать такого рода персонажей? или любое другое решение?

Caused by: java.io.IOException: Invalid white space character (0xb) in text to output (in xml 1.1, could output as a character entity)
    at com.ctc.wstx.api.InvalidCharHandler$FailingHandler.convertInvalidChar(InvalidCharHandler.java:56)
    at com.ctc.wstx.sw.XmlWriter.handleInvalidChar(XmlWriter.java:629)
    at com.ctc.wstx.sw.BufferingXmlWriter.writeCharacters(BufferingXmlWriter.java:583)
    at com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:469)
    at com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator.writeString(ToXmlGenerator.java:588)

1 Ответ

0 голосов
/ 23 апреля 2019

Наконец, я решил проблему самостоятельно. Как указывает ошибка, XML 1.1 поддерживает этот тип символов. Таким образом, можно решить проблему, просто добавив следующую конфигурацию:

xmlMapper.configure(ToXmlGenerator.Feature.WRITE_XML_1_1, true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...