2011-06-27 11 views
0

Tomcat 6.0.24にRails 3アプリケーションを配備しようとしています。 JRubyのバージョンは1.6.2(ruby-1.8.7-p330)、Warblerは1.3.0です。私はgemの依存関係を処理するためにbundlerを使用します。Rails 3、JRuby and Warbler

は、WEB-INF/libフォルダをチェックし、次のjarファイルが存在する:

  • JRubyのラック-1.0.9.jar
  • JRubyのコア-1.6.2.jar
  • のJRuby -stdlib-1.6.2.jar

しかし、サーバが起動するしかし後に、次の例外に適用した結果を打つ:

javax.servlet.ServletException: Filter execution threw an exception 
java.lang.NoClassDefFoundError: Could not initialize class com.kenai.jaffl.struct.Struct$Constants 
    com.kenai.jaffl.struct.Struct$Signed64.<init>(Struct.java:1074) 
    org.jruby.ext.posix.HeapStruct$Int64.<init>(HeapStruct.java:41) 
    org.jruby.ext.posix.LinuxHeapFileStat.<init>(LinuxHeapFileStat.java:35) 
    org.jruby.ext.posix.LinuxPOSIX.allocateStat(LinuxPOSIX.java:26) 
    org.jruby.ext.posix.LinuxPOSIX.stat(LinuxPOSIX.java:107) 
    org.jruby.ext.posix.LazyPOSIX.stat(LazyPOSIX.java:226) 
    org.jruby.RubyFileTest.directory_p(RubyFileTest.java:102) 
    org.jruby.RubyFileTest.directory_p(RubyFileTest.java:87) 
    org.jruby.RubyFileTest$FileTestFileMethods.directory_p(RubyFileTest.java:428) 
    org.jruby.RubyFileTest$FileTestFileMethods$s$1$0$directory_p.call(RubyFileTest$FileTestFileMethods$s$1$0$directory_p.gen:65535) 
    org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:282) 
    org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:139) 
    org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57) 
    org.jruby.ast.IfNode.interpret(IfNode.java:111) 
    org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104) 
    org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75) 
    org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:147) 
    org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:163) 
    org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:262) 
    org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:105) 
    org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:63) 
    org.jruby.ast.IfNode.interpret(IfNode.java:117) 
    org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104) 
    org.jruby.ast.BlockNode.interpret(BlockNode.java:71) 
    org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75) 
    org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:120) 
    org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:145) 
    org.jruby.runtime.callsite.SuperCallSite.cacheAndCall(SuperCallSite.java:286) 
    org.jruby.runtime.callsite.SuperCallSite.callBlock(SuperCallSite.java:70) 
    org.jruby.runtime.callsite.SuperCallSite.call(SuperCallSite.java:75) 
    org.jruby.ast.ZSuperNode.interpret(ZSuperNode.java:101) 
    org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)..... 

これはどんな鐘を鳴らしますか?

[回答更新]:この問題はサーバー上のJava実装で発生しました。それはOpen JDKでした。私はSun Java 1.6.0_26に切り替えて、すべてが動作するようになりました:)

答えて

0

問題はサーバー上のJava実装で発生しました。それはOpen JDKでした。私はSun Java 1.6.0_26に切り替え、すべてが機能し始めた

0

これは新しいバグか古いバグかどうかは不明です。グーグルでエラーを調べるか、http://bugs.jruby.orgをご覧ください。

VM内に-Djruby.native.enabled=falseを設定して、pure-Java POSIXレイヤーを使用し、このエラーを回避することができます。

関連する問題