Sendfile на Jruby / JRack Tomcat - PullRequest
3 голосов
/ 06 мая 2011

У меня возникла интересная проблема при развертывании приложения в Tomcat. я используя гем Acts_as_flying_saucer для конвертации HTML в PDF. Что за Gem / плагин делает, это визуализировать представление HTML, а затем использует Java SAX процессор для отображения стандартного PDF / 1.4-совместимого файла на сервере Каталог TMP.

У меня проблема в том, что плагин делает вызов, чтобы отправить файл в браузер. Он отправляет файл 0 байт. Глядя на журнал Rails, он говорит, что отправил /tmp/41c986f5e6249ce24c7698b6494796e0.pdf

Журнал Tomcat показывает 200 статус, как если бы он отправил файл. Но файл в в каталоге / tmp / есть информация, а в браузер пустой.

Лучшее предположение, которое у меня есть, в том, что в send_file есть что-то нестабильное способ.

Отлично работает с webrick. Я развернул войну на нескольких разных Экземпляры Tomcat как в Linux, так и в Windows ... все журналы, кажется, показывают все работает нормально.

Дайте мне знать, если нужна дополнительная информация или у кого-нибудь есть идеи о том, как я может отследить эту проблему.

Спасибо, -Джим

Ответы [ 2 ]

3 голосов
/ 12 мая 2011

Похоже, что Tomcat не понимает 'X-Sendfile' так, как это делают другие веб-серверы.

"Исправить" - это закомментировать:

config.action_dispatch.x_sendfile_header = "X-Sendfile"

в вашей среде /production.rb

Надеюсь, что это поможет другим.

-Jim

1 голос
/ 17 января 2012

Вы также можете добавить это промежуточное ПО в свой стек промежуточного ПО.

https://gist.github.com/958096

...