Я работаю с симулятором и участвуют два запроса:
1) Запрос A отправляется, а ответ A извлекается и направляется в xml
строка.
2) Часть запроса B содержит ответ A, который я извлек из ответа A, выполнив:
String dataString = StringUtils.substringBetween(getDataServiceResponse,
DATA_STRING_START, DATA_STRING_END);
Я пытаюсь выполнить маршалинг запроса B, но часть, содержащая ответ A, не маршалируется, как я ожидаю (проблема с кодировкой). Я вставил xml ниже, объясняя, в чем проблема.
Я пытался установить свойства маршаллера:
private String marshall(Object data, Marshaller marshaller) throws
JAXBException
{
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
StringWriter writer = new StringWriter();
marshaller.marshal(data, writer);
return writer.toString();
}
Ожидаемый результат:
<Data type="XML">
<OfferLookups>
<Offer cache="1" content="1" expiry="1430434799" id="9078" present="1" promoId="4255">
<Action>
<Prn id="254" targetPrinter="EPSON::TM_T88IV">
<Bep count="1" id="144" />
<Overlay id="200" printDirection="topToBottom">
<Group hAlign="center" id="201">
<Img filename="file:///retailer_logo1.png" hAlign="center" id="210" />
</Group>
</Overlay>
<Group hAlign="center" id="19" printDirection="topToBottom">
<Text bold="true" charAlign="center" id="4">GREAT OFFER 1</Text>
<Line id="6" />
</Group>
<Cut id="500" lineFeed="100" type="full" />
</Prn>
</Action>
</Offer>
</OfferLookups>
</Data>
Фактический результат:
<Data>
<OfferLookups>
<Offer cache="1" content="1" expiry="1430434799" id="9078" present="1" promoId="4255">
<Action>
<Prn id="254" targetPrinter="EPSON::TM_T88IV">
<Bep count="1" id="144" />
<Overlay id="200" printDirection="topToBottom">
<Group hAlign="center" id="201">
<Img filename="file:///retailer_logo1.png" hAlign="center" id="210" />
</Group>
</Overlay>
<Group hAlign="center" id="19" printDirection="topToBottom">
<Text bold="true" charAlign="center" id="4">GREAT OFFER 1</Text>
<Line id="6" />
</Group>
<Cut id="500" lineFeed="100" type="full" />
</Prn>
</Action>
</Offer>
</OfferLookups>
</Data>