我正在从RESTful Web服务获得响应,该服务可以返回最长300kb的String。
当我尝试使用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秒。
最佳答案
确保只实例化一次JAXBContext / Convertor类。
以我的经验,创建JAXBContext是昂贵的。
编辑:
但这不是12秒的解释,我想...