Spring производит XML с CDATA, но специальные символы преобразуются - PullRequest
0 голосов
/ 04 августа 2020

У меня есть одна конечная точка, написанная весной. Он производит как XML, так и JSON. Я не сделал ничего особенного. Вот пример кода

 @RequestMapping(value = "/test", method = RequestMethod.POST
        ,produces={MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE},
        consumes={MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE})
@ResponseBody
public ResponseDTO method(@Valid @RequestBody RequestDTO requestDTO) {
   
   return testService.testMethod(requestDTO);
            
}

Раньше он не добавлял CDATA ни в одно из значений, даже имея специальные символы (например, &). Я провел небольшое исследование, я добавил XmlAdapter, в метод маршалинга, добавил <![CDATA[" + s + "]]>.

CDATA начинает поступать в моем ответе, но специальные символы, такие как &, <,> et c, преобразуются в xml символы вроде &amp;, &lt;, &gt; respetivley.

Более того, при отладке, когда строковое значение приходит на адаптер XML, оно не конвертируется. Но в конечном ответе он конвертируется.

Как я могу ограничить это преобразование?

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