Я получаю ответ от веб-сервиса RESTful, который может возвращать String длиной до 300 КБ.Производительность JaxB на больших документах
Когда я пытаюсь распаковать гу с помощью JaxB2, это занимает до 12 секунд
Есть ли что я могу сделать?
public class Convertor{
JAXBContext responseJaxbContext;
public Convertor(){
requestJaxbContext = JAXBContext.newInstance(MyClassResponse.class);
}
public MyClassResponse convertXml(String str) {
MyClassResponse response = null;
try {
Unmarshaller jaxbUnMarshaller = bookingResponseJaxbContext.createUnmarshaller();
StringReader reader = new StringReader(str);
response = (MyClassResponse) jaxbUnMarshaller.unmarshal(reader);
} catch (JAXBException e) {
e.printStackTrace();
}
return response;
}
}
Обновление: я отключил проверку схемы с использованием
jaxbUnMarshaller.setSchema(null);
Теперь мой демаршалинга время составляет 5 -7 сек.
Как вы измерили это время? 12s только для 300kb кажется много ... – Puce
@Puce, я использую библиотеку SpringWatch Spring. –
Как выглядит модель XML и Object? Существуют ли какие-либо свойства типа «Объект», которые могут приводить к созданию узлов DOM? Является ли документ действительным, иногда время может быть потрачено впустую на недопустимые значения, которые вызывают внутренние исключения. –