错误页面(500.html,404.html等)未在rails / jruby环境中呈现

时间:2012-02-13 17:52:59

标签: tomcat jruby ruby-on-rails-3.2

我对以下问题感到困惑:

  1. 使用jruby 1.6.5.1
  2. 在Tomcat上运行Rails 3.2
  3. 当触发错误时,(任何错误)页面最终超时“错误101(net :: ERR_CONNECTION_RESET):连接已重置。”
  4. 我显然希望根据环境配置呈现堆栈跟踪或public / 500.html。在Mac或Windows上进行本地开发时,应用程序正如我所期望的那样执行完全。此应用程序部署到的Tomcat环境可能没有错(我们在类似配置中运行数百个rails应用程序)。

    public / * .html文件正在打包在.war文件中,以便进行部署。

    除了不渲染错误之外,应用程序运行正常。

    我在哪里可以开始调试这个?

2 个答案:

答案 0 :(得分:0)

修复程序是降级到jruby-rack版本1.0.10,类似于此问题which I also answered。看起来Tomcat上最新版本的jruby-rack存在多个问题。

答案 1 :(得分:0)

此标志在JRuby 1.7.26,Rails 3.0.20,Tomcat 8 / Java 8上也不适用于我:

config.consider_all_requests_local = true

我最终修补了Rails库。似乎有一些与“request.local”有趣的东西?'在Tomcat中运行时调用第67行(actionpack / lib / action_dispatch / middleware / show_exceptions.rb)。

我改变了这一行:

if @consider_all_requests_local || request.local?

if @consider_all_requests_local

我这样做的原因是我只是在开发时手动设置了Conside_all_request_local标志,因此环回地址的自动回退是没有用的。