Код возврата Apache FOP 1 при создании PDF

Я пытаюсь использовать последнюю версию Apache FOP для создания PDF-файлов. Однако при этом я получаю сообщение об ошибке с кодом возврата. По какой-то причине он теперь возвращает «1» вместо «0» при выполнении процесса.

ProcessBuilder processBuilder = new ProcessBuilder(commandWords);
processBuilder.directory(fopFolder);
processBuilder.redirectErrorStream(true);
StringBuilder outputBuilder = new StringBuilder();
Process process = processBuilder.start();
exitCode = process.waitFor(); //Should return 0, actually returns 1

Командные слова, которые я передаю, это...

path -jar fop.jar -c configPath -fo {null} -pdf outputPath

Или по ситуации...

path -Xms256m -Xmx{maxmemory} -jar fop.jar -c configFile -fo {null} -pdf outputPath

Мне также удалось избавиться от этой ошибки позже, что, как я подозреваю, может быть причиной. Я добавлю ответ позже по мере необходимости, если найду собственное решение.

Произошла ошибка во время инициализации виртуальной машины. Начальный размер кучи задан большим, чем максимальный размер кучи.

Любые советы по этому вопросу приветствуются, если вам требуется дополнительная информация, я также был бы рад обновить свой вопрос, так как я не уверен на 100%, какая информация требуется для устранения этой проблемы.

  • Java-версия: 8
  • Апач ФОП: 2.1

person Sh4d0wsPlyr    schedule 12.04.2016    source источник
comment
Возможно, связано с stackoverflow.com/questions/35502100/   -  person Sh4d0wsPlyr    schedule 12.04.2016


Ответы (2)


Эта проблема больше похожа на общую проблему конфигурации Java, чем на конкретную проблему FOP:

Произошла ошибка во время инициализации виртуальной машины. Начальный размер кучи задан большим, чем максимальный размер кучи.

это означает, что начальный размер кучи Java, установленный с помощью параметра -Xms, больше, чем максимальный размер кучи Java, запрошенный с помощью параметра -Xmx.

Вы должны проверить значение параметра {maxmemory} и убедиться, что оно не меньше 256 м.

person lfurini    schedule 13.04.2016

Изучив это подробнее, мы запустили сервер tomcat, который, в свою очередь, запускал Apache FOP. Ему не хватало памяти, потому что параметры, которые он пытался проанализировать, были неверными.

Мы переделали настройку и вместо этого передали следующие два изменения в FOP по умолчанию, и все заработало отлично. Мы считаем, что значение по умолчанию было либо недействительным, либо слишком низким для обработки процесса.

path -Xms256m -Xmx1024m -jar fop.jar -c configFile -fo {null} -pdf outputPath
person Sh4d0wsPlyr    schedule 14.04.2016