2010-11-23 2 views
1

Запуск на windows7 с использованием wkhtmltopdf для создания PDF-файла с нашего сайта отлично работает из командной строки. Выполнение точно такой же команды wkhtmltopdf из сервлета, работающего в причале через commons-exec, приводит к пустому pdf.приложение, запущенное из java commons-exec, не может получить доступ к веб-сайту на win7, но запущено из cmd.exe.

Я включил клапан доступа на нашем сайте, а также установил netmon на win7, и я четко вижу, что веб-запрос на наш сайт генерируется при вызове из командной строки, но не вообще не создаваться из процесса причала.

Я просмотрел журналы событий с помощью Event Viewer на win7, но я не вижу никаких исключений безопасности или таких, которые могли бы объяснить пустой pdf. Тот факт, что он равен, генерируя pdf, подразумевается, что исполняемый файл wkhtmltopdf вызывается правильно.

Любые идеи, которые могут вызывать wkhtmltopdf, чтобы не иметь доступа к http?

ответ

2

Решил его, в случае, если кто-то еще сталкивается с этим: хотя исполняемый файл wkhtmltopdf работал нормально, он запускался без каких-либо переменных окружения, и это заставляло HTTP-запрос терпеть неудачу молча (или, по крайней мере, в некотором смысле что я никогда не обнаруживал). Изменение процесса запуска для копирования всех env vars из процесса запуска в процесс wkhtmltopdf решило проблему.

Обратите внимание, что я, наконец, решил это, обернув wkhtmltopdf в сценарий летучей мыши и распечатав env vars и другое состояние там. Пришлось расчесывать мои биты, но это стоило того.