Я получаю большой ответ SOAP с примерно 10000 + строками данных и извлекаю соответствующие данные из CDATA и вставляя их в базу данных.Ошибка из памяти при анализе ответа SOAP
Код выглядит так:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setCoalescing(true);
DocumentBuilder db = dbf.newDocumentBuilder();
InputStream is = new ByteArrayInputStream(resp.getBytes());
Document doc = db.parse(is);
XPathFactory xPathfactory = XPathFactory.newInstance();
XPath xpath = xPathfactory.newXPath();
XPathExpression expr = xpath.compile(fetchResult);
String result = (String) expr.evaluate(doc, XPathConstants.STRING);
соответственно содержит ответ SOAP fetchResult является
String fetchResult = "//result/text()";
Я получаю OutOfMemory ошибку в последней строке. Я попытался увеличить размер кучи до 1,2 ГБ, но это тоже не сработало.
Может ли кто-нибудь из вас, пожалуйста, помочь мне?
спасибо Джефф за решение. Однако я не могу придумать код. Не могли бы вы помочь мне? – user1356042