【问题标题】:JRuby on Rails does not work with Tomcat running as a service on Windows Server 2008JRuby on Rails 不适用于在 Windows Server 2008 上作为服务运行的 Tomcat
【发布时间】:2011-03-04 15:19:22
【问题描述】:

问题

似乎将 Tomcat 作为服务运行并不能很好地与使用 warble 打包的 Rails 3 应用程序配合使用。查看日志文件,看起来要么存在循环依赖,要么存在动态解析但找不到的依赖,因此它循环。最终,org.jruby.exceptions.RaiseException: stack level too deep 被抛出。但是,当我使用startup.bat代替启动Tomcat时,并没有出现这个问题。

任何帮助将不胜感激!我一直在拼命寻找这个问题的答案。提前致谢!

部署平台

  • Windows Server 2008(64 位)
  • Apache Tomcat 6.29(64 位)
  • JDK 1.6
  • 导轨 3
  • jruby 1.5.6
  • 莺 (1.2.1)
  • jruby-jars (>= 1.4.0)
  • jruby 机架 (>= 1.0.0)

Tomcat localhost.log

http://pastie.org/1308566

【问题讨论】:

  • 您可以尝试更新 Bundler 并重试吗?
  • 我明天一上班就试一试。谢谢尼克!非常感谢您的回音。
  • 嘿尼克,我正在运行 Bundler 1.0.7。仍然遇到同样的问题。

标签: windows jruby tomcat6 ruby-on-rails-3 warbler


【解决方案1】:

我猜你的数据库连接信息包含一个意外的空字符串,系统正试图在某处将其转换为大写。将此错误消息视为提示:

在 ERB.result(C:/bin/apache-tomcat-6.0.29/webapps/rails3app/WEB-INF/gems/gems/railties-3.0.0/lib/rails/application/configuration.rb:86) 在 Rails::Application::Configuration.database_configuration(C:/bin/apache-tomcat-6.0.29/webapps/rails3app/WEB-INF/gems/gems/activerecord-3.0.0/lib/active_record/railtie.rb:58 )

这可以通过配置编辑来纠正。

【讨论】:

  • 查看数据库配置 - 如果某些字段的数据为空或缺失是有意义的,请尝试将它们替换为空字符串 ("") 或等效项。
  • 谢谢。这解决了新问题,但现在我又回到了原来的问题。 :S
【解决方案2】:

我刚刚在您的 Jruby 票证上发布了以下内容 [http://jira.codehaus.org/browse/JRUBY-5237]:

这实际上是 Tomcat = 1.0.4

Tomcat 6 升级:http://tomcat.apache.org/download-60.cgi

我遇到了同样的问题,升级为我解决了。

如果您对详细信息感兴趣,我已经在http://techblog.amphora-research.com/2011/03/tomcat-6-stack-level-too-deep-error-on-windows/ 发帖。

祝你好运!

【讨论】:

    【解决方案3】:

    查看您的 startup.bat 配置。可能是 Tomcat 启动时使用了更高的 Java 内存设置,从而允许递归完成而不会耗尽内存。

    【讨论】:

    • 感谢您的建议,但内存不足是由于 Bundler 无法找到合适的资源。
    • 也许是环境变量的问题?该服务可能以错误的设置启动。如果您查看 bat 文件并检查设置,您可以重置服务以使用相同的服务 (tomcat.apache.org/tomcat-5.5-doc/windows-service-howto.html)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-26
    相关资源
    最近更新 更多