Перенос кода MimeUnmarshaller в Spring 5 - PullRequest
0 голосов
/ 29 января 2020

У меня есть устаревший код, который реализует org.springframework.oxm.mimeMimeUnmarshaller:

import javax.xml.bind.attachment.AttachmentUnmarshaller;
import javax.xml.transform.Source;
import org.springframework.oxm.UnmarshallingFailureException;
import org.springframework.oxm.XmlMappingException;
import org.springframework.oxm.mime.MimeContainer;
import org.springframework.oxm.mime.MimeUnmarshaller;
import org.springframework.xml.transform.StaxSource;

public class MISMarshaller implements MimeUnmarshaller {
    .
    .
    .
    public Object unmarshal(Source source, MimeContainer mimeContainer) throws XmlMappingException {
        AttachmentUnmarshaller au = null;
        if (this.mtomEnabled && mimeContainer != null) {
            au = new MISMarshaller.MISAttachmentUnmarshaller(mimeContainer);
        }

        if (source instanceof StaxSource && ((StaxSource)source).getXMLStreamReader() != null) {
            try {
                return this.context.unmarshal(au, ((StaxSource)source).getXMLStreamReader());
            } catch (Exception var5) {
                throw new UnmarshallingFailureException(var5.getMessage(), var5);
            }
        } else {
            throw new IllegalStateException(
                "Only StAX is supported for MIS marshaller.  Use AXIOM message factory.");
        }
    }
    .
    .
    .
}

Я обновляю этот код до Spring 5, а класс StaxSource отсутствует в Spring 5. Как это можно переписать, чтобы работать для Весна 5?

1 Ответ

0 голосов
/ 29 января 2020
import org.springframework.util.xml.StaxUtils;
    .
    .
    .
            return this.context.unmarshal(au, StaxUtils.getXMLStreamReader(source));
...