Мне нужно отправить SOAP-ответ с элементом типа xs: string.Этот элемент должен содержать раздел CDATA.По умолчанию реализация JAX-WS в Webphere 8.5.5 экранирует специальные символы, такие как '<' '>' или '&', но клиент хочет, чтобы респон не экранировался и не переносился в CDATA.
Объект с строковым элементомгенерируется из wsdl maven с использованием wsimport с аннотацией:
@XmlElement(name = "messageContent", required = true)
protected String messageContent;
Я могу принять запрос, содержащий раздел CDATA, и все работает нормально.В messageContent находится содержимое принятых CDATA, символы не экранированы.Но проблема заключается в отправке ответа в этом объекте - ответ каждый раз экранируется, и я не знаю, как правильно добавить раздел CDATA.
Я уже пытался изменить ответное сообщение в SOAPHandler и в LogicalHandler (где полезная нагрузка имеетвведите javax.xml.transform.Source).Я заменил исходный элемент новым элементом с разделом cdata:
Element newEl = document.createElement(origNode.getNodeName());
CDATASection cdata = document.createCDATASection(origNode.getTextContent());
newEl.appendChild(cdata);
origNode.getParentNode().replaceChild(newEl, origNode);
И каждый раз выходное сообщение SOAP без CDATA и экранированных специальных символов.
Есть ли способ, как действительно добавитьРаздел CDATA, который присутствует в выходном мыльном сообщении?Заранее спасибо.