Следующий фрагмент кода не вызывает никаких ошибок при выполнении в автономном режиме. Когда я раскрываю это в веб-сервер [реализации ИНТЕРФЕЙС сервера и добавлены в качестве JAR в пути к классам], я получаюjava.util.concurrent.ExecutionException: java.lang.NullPointerException Error
java.util.concurrent.ExecutionException: java.lang.NullPointerException
at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source)
at java.util.concurrent.FutureTask.get(Unknown Source)
at com.nbis.process.JSON_2_File_Split_V004.fn_1_parserEntity(JSON_2_File_Split_V004.java:256)
at com.nbis.process.JSON_2_File_Split_V004.fn_0_primaryCaller(JSON_2_File_Split_V004.java:177)
at com.nbis.process.JSON_2_File_Split_V004.execute(JSON_2_File_Split_V004.java:151)
фрагмент кода:
this.callable = new JSON_3_File_Process_V005(this.originalFileName, this.inProgressDirLoc, this.processedDirLoc, "[" + jSONRecord.toString() + "]", this.dataMDHolder, this.dataAccIDValueMap, this.dataCountryNameValueMap);
String[] fullContent = null;
try {
fullContent = executor.submit(this.callable).get();
} catch (ExecutionException e) {
StringWriter errors = new StringWriter();
e.printStackTrace(new PrintWriter(errors));
log.info("Srii: " + errors.toString());
executor.shutdown();
return 7;
}
Добавление возвращаемого значения ГЭТ в к ExecutorCompletionService будет вариант, но разве это не убьет концепцию асинхронной обработки? Другими словами, я собираю в StringBuilder выходную строку из вызываемого get и сохраняют на диск, когда счетчик получения достигает определенного числа. Как только данные будут отправлены на диск, я обновляю StringBuilder. Таким образом я нажимаю данные на диск через регулярные промежутки времени, не сохраняя их в памяти.
Любые предложения относительно того, что я делаю здесь неправильно? Оцените любые входы. Спасибо.
Не могли бы вы указать на строку кода, которая вызывает исключение? –
thats точно я все еще пытаюсь понять, след кажется усеченным. – Srii