繁体   English   中英

Jruby / JRack Tomcat上的Sendfile

[英]Sendfile on Jruby/JRack Tomcat

将应用程序部署到Tomcat时,我遇到了一个有趣的问题。 我正在使用Acts_as_flying_saucer gem将html转换为PDF。 gem /插件的作用是呈现html视图,然后使用java SAX处理器在服务器的TMP目录中呈现标准的PDF / 1.4兼容文件。

我遇到的问题是当插件调用将文件发送到浏览器时。 它发送一个0字节文件。 看看Rails日志,它说它发送了/tmp/41c986f5e6249ce24c7698b6494796e0.pdf

Tomcat日志显示200状态,就像它发送文件一样。 但是/ tmp /目录中的文件中包含信息,发送到浏览器的文件为空。

我最好的猜测是send_file方法中存在一些碎片。

它从webrick开始很棒。 我已经在Linux和Windows上的几个不同的Tomcat实例上部署了一个WAR ...这些日志似乎都表明事情正常。

如果需要更多信息或者是否有人对我如何追踪此问题有任何想法,请告诉我。

谢谢,-Jim

似乎Tomcat不像其他Web服务器那样理解“X-Sendfile”。

“修复”是注释掉:

config.action_dispatch.x_sendfile_header = "X-Sendfile"

在您的环境/ production.rb中

希望这有助于其他人。

-Jim

您还可以将此中间件添加到中间件堆栈。

https://gist.github.com/958096

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM