1

我对以下问题完全感到困惑:

  1. 带有 jruby 1.6.5.1 的 Tomcat 上的 Rails 3.2 应用程序
  2. 触发错误时,(任何错误)页面最终会超时并显示“错误 101 (net::ERR_CONNECTION_RESET):连接已重置。”

我显然希望根据环境配置呈现堆栈跟踪或 public/500.html。在 Mac 或 Windows 上进行本地开发时,该应用程序的性能完全符合我的预期。此应用程序部署到的 Tomcat 环境可能没有问题(我们以类似的配置运行数百个 rails 应用程序)。

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

除了不呈现错误之外,应用程序运行良好。

我什至可以从哪里开始调试这个?

4

2 回答 2

0

修复方法是降级到 jruby-rack 版本 1.0.10,类似于我也回答的这个问题。Tomcat 上最新版本的 jruby-rack 似乎存在多个问题。

于 2012-02-15T17:23:47.807 回答
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 标志,因此环回地址上的自动回退没有实际意义。

于 2016-12-10T00:29:39.923 回答