2010-11-23 8 views
1

läuft auf Windows7, mit wkhtmltopdf, um ein PDF von unserer Website zu generieren funktioniert gut von einer Eingabeaufforderung. Die Ausführung des gleichen wkhtmltopdf-Befehls von einem Servlet, das über "commons-exec" in jetty ausgeführt wird, führt zu einer leeren PDF-Datei.App gestartet von Java Commons-Exec kann nicht auf Web auf Win7 zugreifen, startete aber von cmd.exe kann

Ich habe das Accesslog-Ventil auf unserer Website aktiviert sowie netmon auf win7 installiert, und ich kann deutlich sehen, dass die Web-Anfrage an unsere Website selbst generiert wird, wenn sie von der Eingabeaufforderung aufgerufen wird, ist es aber nicht überhaupt vom Anlegesteg erzeugt werden.

Ich habe die Ereignisprotokolle mit der Ereignisanzeige auf win7 untersucht, aber ich sehe keine Sicherheitsausnahmen oder solche, die das leere PDF erklären könnten. Die Tatsache, dass es generiert, bedeutet, dass die ausführbare Datei wkhtmltopdf korrekt aufgerufen wird.

Irgendwelche Ideen, was dazu führen könnte, dass wkhtmltopdf keinen HTTP-Zugriff hat?

Antwort

2

Gelöst es, falls jemand anderes darüber läuft: Obwohl die ausführbare Datei wkhtmltopdf einwandfrei lief, wurde sie ohne irgendwelche Umgebungsvariablen gestartet, und das führte dazu, dass die HTTP-Anfrage lautlos (oder zumindest in gewisser Weise) fehlschlug das habe ich nie entdeckt). Durch das Ändern des Prozesslauners zum Kopieren aller env vars vom Startprozess in den wkhtmltopdf-Prozess wurde das Problem behoben.

Beachten Sie, dass ich dies schließlich gelöst habe, indem ich wkhtmltopdf in ein Bat-Skript eingepackt habe und env vars und anderen Zustand dort ausgedruckt habe. Ich musste mein Bat Scripting auffrischen, aber es war es wert.