【问题标题】:Running a rails app with Jruby in 1.9 mode?在 1.9 模式下使用 Jruby 运行 rails 应用程序?
【发布时间】:2011-05-19 20:13:49
【问题描述】:

一直在尝试在 jruby 1.9 模式下使用终端运行 rails 应用程序。我尝试了以下方法,但遇到了一系列错误:

$ jruby --1.9 script/rails s
LoadError: load error: /Users/aaronmcleod/Documents/sojourner/config/boot -- java.lang.ClassCastException: org.jruby.RubyObject cannot be cast to org.jruby.RubyException
  require at org/jruby/RubyKernel.java:1047
  require at /Users/aaronmcleod/.rvm/rubies/jruby-1.6.1/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29
   (root) at script/rails:5

【问题讨论】:

    标签: ruby-on-rails jruby


    【解决方案1】:

    这是由新的 YAML 解析器引起的,它有一些内部错误。检查您的 yaml 文件,对于任何符号,您必须用字符串替换它们。在我的情况下是:

    --- a/config/locales/de.yml
    +++ b/config/locales/de.yml
    @@ -13,7 +13,7 @@ de:
         abbr_day_names: [So, Mo, Di, Mi, Do, Fr, Sa]
         month_names: [~, Januar, Februar, März, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember]
         abbr_month_names: [~, Jan, Feb, Mär, Apr, Mai, Jun, Jul, Aug, Sep, Okt, Nov, Dez]
    -    order: [ :day, :month, :year ]
    +    order: [ "day", "month", "year" ]
    
       time:
         formats:
    

    另见相关错误报告:JRUBY-5802

    您可以通过遍历所有文件并尝试解析它们来确定错误的yaml文件:

    jruby --1.9 -ryaml -e 'ARGV.each {|file| puts file; YAML.load_file(file) }'  $(find . -name '*.yml')
    

    【讨论】:

    • 它可能是设计语言 yml 文件之一。因为它们在所有翻译中都有各种特殊字符。
    • 遍历所有这些并尝试解析它们,我将更新答案。
    • 试一试:jruby --1.9 -ryaml -e 'ARGV.each {|file|放置文件; YAML.load_file(file) }' $(find . -name '*.yml') ./.gem/ruby/1.8/gems/activemodel-3.0.0.beta/lib/active_model/locale/en.yml ./ .gem/ruby/1.8/gems/activesupport-3.0.0.beta/lib/active_support/locale/en.yml RubyException$i$0$2$initialize.gen:65535:in call': java.lang.ClassCastException: org.jruby.RubyObject cannot be cast to org.jruby.RubyException from CachingCallSite.java:242:in cacheAndCall'
    • 尽量避免在 .gem 文件夹中搜索,只需检查您自己的代码即可。最后打印的文件名是导致问题的文件名
    • 抱歉,没有意识到我在 ~ :(。无论如何,它是位于 config 目录中的 cucumber.yml 文件。我尝试将一些内容包装为字符串,但仍然没有运气. gist.github.com/980806 这是我的 yml 文件
    猜你喜欢
    • 1970-01-01
    • 2012-05-10
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    • 2015-10-11
    • 1970-01-01
    相关资源
    最近更新 更多