2011-05-05 35 views
3

我在將應用程序部署到Tomcat時遇到了一個有趣的問題。我是 使用Acts_as_flying_saucer gem將html轉換爲PDF。 gem/plugin所做的是呈現html視圖,然後使用java SAX 處理器在服務器的 TMP目錄中呈現標準的PDF/1.4兼容文件。Jruby/JRack Tomcat上的Sendfile

我遇到的問題是插件打電話發送 文件到瀏覽器。它發送一個0字節文件。看看Rails日誌, 它可以說它發送/tmp/41c986f5e6249ce24c7698b6494796e0.pdf

Tomcat日誌顯示200狀態就好像它發送文件。但是 中的文件/ tmp /目錄中包含信息,發送給瀏覽器的文件爲 爲空。

我的最佳猜測是send_file 方法中存在一些片狀。

它從webrick很棒。我已經在Linux和Windows上的幾個不同的 Tomcat實例上部署了一個WAR ...日誌似乎都顯示 事情工作正常。

讓我知道是否需要更多的信息,或者如果任何人有任何想法如何我可以跟蹤這個問題。

感謝, -Jim

回答

3

看來,Tomcat不明白 'X-SENDFILE' 的方式與其它web服務器做。

「修復」 是註釋掉:

config.action_dispatch.x_sendfile_header = "X-Sendfile" 

在你的環境中/ production.rb

希望這會幫助別人。

-Jim

+0

謝謝,這節省了我幾個小時的調試! – Patrick 2012-06-06 18:20:42

+0

追蹤令人難以置信的令人沮喪。我很高興它幫助了別人。 – 2012-06-06 21:39:51

1

您也可以將此中間件添加到您的中間件堆棧。

https://gist.github.com/958096

+0

這是一個有趣的方式來處理它。 – 2012-06-06 21:37:50