【发布时间】:2014-10-23 18:57:17
【问题描述】:
我有一个用 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,并确保$JRUBY_HOME/lib 中有ojdbc6.jar 和ojdbc7.jar。当我通过扭矩箱启动应用程序时,出现如下错误:
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 中的原始错误。我已编辑此帖子以反映当前情况。)
【问题讨论】:
标签: java ruby-on-rails oracle jruby torquebox