Tomcat 8 上 JRuby Padrino 应用程序的 NoMethod 错误 "join"

NoMethod Error "join" on JRuby Padrino application on Tomcat 8

这个真的让我很困惑。我有一个 Web 应用程序,用 JRuby 编写,并用 Warbler 编译。当我尝试在 Tomcat 中托管 Warbled 文件时,我经常收到

的 500 内部服务器错误
(NoMethodError) undefined method `join' for #<String:0x2bb320a>

当我 运行 源代码上的本机 Padrino Web 服务器时,应用程序可以完美启动和运行。 Tomcat 日志几乎什么也没有给出,错误 500 甚至都没有出现。

我的 Gemfile 是:

# source
source 'https://rubygems.org'
source 'http://gems.github.com'

# ruby
ruby '1.9.3', engine: 'jruby', engine_version: '1.7.18'

# gems
gem 'padrino'
gem 'padrino-flash'
gem 'dbi'
gem 'haml'
gem 'sass'
gem 'tilt'
gem 'rake'
gem 'rubyzip', '<1.0.0'
gem 'dberkom-sinatra-prawn'
gem 'sinatra-flash', require: 'sinatra/flash'
gem 'jruby-openssl'
gem 'jruby-rack'
gem 'jdbc-jtds', '~> 1.3.0.1'
gem 'dbd-jdbc', '~> 0.1.6'
gem 'bcrypt'
gem 'iso_country_codes'
gem 'prawn', '~> 1.2.1'
gem 'prawn-table', '~> 0.1.0'
gem 'jruby-jars', '1.7.18'

group :development do
  gem 'guard'
  gem 'guard-livereload'
end

我有一个旧的 WAR,它建立在旧版本的 Jruby 上,它确实可以工作,所以我认为这可能是一个错误,因为其中一个 gem 不再很好玩了。

这是机架的问题。在撰写本文时版本 1.6.0 导致基于 Sinatra 的应用程序出错。使用较旧的 gem,直到确认已解决。