我有一个用 JRuby (1.7.12) 编写的 Rails 3.2.13 应用程序。我正在 Mac OS X 10.10 上开发(尽管问题在 10.9 上也很明显)。我安装了 JDK 1.6 和 1.7。我正在通过扭矩箱 3.1.1 为应用程序提供服务。
如果我启动应用程序连接到我的本地 postgres 数据库,我没有问题。但我需要调试一个需要连接到 Oracle 的问题。然后我将我的适配器切换到oracle-enhanced
并确保我有 ojdbc6.jar 和 ojdbc7.jar 在$JRUBY_HOME/lib
. 当我通过扭矩箱启动应用程序时,我收到如下错误:
14:47:58,242 ERROR [org.torquebox.core.runtime] (pool-8-thread-1) Error during execution: ENV['RAILS_ROOT']=RACK_ROOT
ENV['RAILS_ENV']=RACK_ENV
require %q(org/torquebox/web/rails/boot)
: org.jruby.exceptions.RaiseException: (NoMethodError) undefined method `blame_file!' forjava.lang.StackOverflowError:Java::JavaLang::StackOverflowError
我意识到blame_file!
错误是另一回事。我关心的是导致该错误的 StackOverflowError 。当尝试加载必要的文件时,它会进入一个失败的循环,就像rails/boot
在这种情况下一样。
然而!当我运行“rails 控制台”时,它工作正常,我可以从数据库中加载数据。
由于能够加载控制台,我确信这是扭矩箱的问题,但我不知道是什么,也不知道如何解决它。
有没有人可以给我任何帮助?有没有人见过这样的东西?谢谢。
(编辑,我在应用程序中找到了 ojdbc7.jar 的本地缓存副本,这解释了我在 1.6 中的原始错误。我编辑了这篇文章以反映当前情况。)