Похоже, что начиная с Spring 3.0, вы можете использовать класс StaxUtils(org.springframework.util.xml.StaxUtils)
в пользу устаревшего класса StaxResult
. Я нашел несколько примеров, и вы могли бы сделать что-то подобное для метода marshal
:
public void marshal(Object graph, Result result, MimeContainer mimeContainer) throws XmlMappingException {
try {
AttachmentMarshaller am = null;
if (this.mtomEnabled && mimeContainer != null) {
am = new MISMarshaller.MISAttachmentMarshaller(mimeContainer);
}
if (StaxUtils.isStaxResult(result) && StaxUtils.getXMLStreamWriter(result) != null) {
this.context.marshal(graph, am, StaxUtils.getXMLStreamWriter(result));
} else {
if (!(result instanceof SAXResult) || ((SAXResult)result).getHandler() == null) {
throw new IllegalStateException("Only StAX or SAX is supported for MIS marshaller. Use AXIOM message factory.");
}
this.context.marshal(graph, am, (SAXResult)result);
}
} catch (Exception var5) {
throw new MarshallingFailureException(var5.getMessage(), var5);
}
}
по сравнению со старым методом, в котором он был:
public void marshal(Object graph, Result result, MimeContainer mimeContainer) throws XmlMappingException {
try {
AttachmentMarshaller am = null;
if (this.mtomEnabled && mimeContainer != null) {
am = new MISMarshaller.MISAttachmentMarshaller(mimeContainer);
}
if (result instanceof StaxResult && ((StaxResult)result).getXMLStreamWriter() != null) {
this.context.marshal(graph, am, ((StaxResult)result).getXMLStreamWriter());
} else {
if (!(result instanceof SAXResult) || ((SAXResult)result).getHandler() == null) {
throw new IllegalStateException("Only StAX or SAX is supported for MIS marshaller. Use AXIOM message factory.");
}
this.context.marshal(graph, am, (SAXResult)result);
}
} catch (Exception var5) {
throw new MarshallingFailureException(var5.getMessage(), var5);
}
}