2010-11-23 34 views
1

Sous Windows7, l'utilisation de wkhtmltopdf pour générer un pdf à partir de notre site fonctionne très bien à partir d'une invite de commande. Exécution de la même commande wkhtmltopdf à partir d'une servlet s'exécutant dans jetty via commons-exec résultats dans un fichier pdf vierge. J'ai activé la valve accesslog sur notre site ainsi que netmon sur win7, et je peux clairement voir que la requête web sur notre site est générée lorsqu'elle est invoquée depuis l'invite de commande, mais elle n'est pas étant généré à partir du processus lancé par la jetée.application lancée à partir de java commons-exec ne peut pas accéder au web sur win7, mais lancé à partir de cmd.exe peut

J'ai examiné les journaux d'événements avec Event Viewer sur win7, mais je ne vois aucune exception de sécurité ou autre qui pourrait expliquer le pdf vide. Le fait que soit la génération d'un pdf implique que l'exécutable wkhtmltopdf est invoqué correctement.

Des idées qui pourraient empêcher wkhtmltopdf d'avoir un accès http?

Répondre

2

Résolu, au cas où quelqu'un d'autre courrait ceci: Bien que l'exécutable wkhtmltopdf fonctionnait correctement, il était lancé sans aucune variable d'environnement, et cela provoquait l'échec silencieux de la requête http (ou du moins d'une manière que je n'ai jamais découvert). Changer le lanceur de processus pour copier toutes les variables env du processus de lancement dans le processus wkhtmltopdf a résolu le problème.

Notez que j'ai finalement résolu ceci en enveloppant wkhtmltopdf dans un script de chauve-souris et en imprimant des vars d'env et d'autre état dedans. J'ai dû rafraîchir mon script de chauve-souris, mais ça valait le coup.