在尝试将JRuby / Rails应用程序部署到Weblogic 10.3(Solaris Zone)容器时,它始终遇到此异常:
org.jruby.rack.RackInitializationException: library `fcntl' could not be loaded: java.lang.NullPointerException
from /xyz/war/WEB-INF/gems/gems/activesupport-3.0.6/lib/active_support/dependencies.rb:239:in `require'
from /xyz/war/WEB-INF/gems/gems/activesupport-3.0.6/lib/active_support/dependencies.rb:225:in `load_dependency'
from /xyz/war/WEB-INF/gems/gems/activesupport-3.0.6/lib/active_support/dependencies.rb:596:in `new_constants_in'
from /xyz/war/WEB-INF/gems/gems/activesupport-3.0.6/lib/active_support/dependencies.rb:225:in `load_dependency'
from /xyz/war/WEB-INF/gems/gems/activesupport-3.0.6/lib/active_support/dependencies.rb:239:in `require'
from /xyz/war/WEB-INF/gems/gems/jruby-openssl-0.7.3/lib/openssl/ssl.rb:19:in `(root)'
from org/jruby/RubyKernel.java:1038:in `require'
[..snip...]
它只是不明白为什么JRuby无法加载这个核心库。它似乎与Solaris有关,因为在MacOS X上安装WLS并在本地部署可以毫无问题地工作。
我可以查看下一步的任何提示或指示 - 或者如何解决此问题?
更新 可能是一个错误(在JRuby JIRA中现在跟踪了IRC / #jruby中的反馈,请参阅:http://jira.codehaus.org/browse/JRUBY-5753
答案 0 :(得分:0)
我通过向-d32
添加JAVA_OPTS
来解决此问题,以强制使用32位JVM。
答案 1 :(得分:0)
我在使用Tomcat 7和Jruby 1.7.2的Centos 5和OSX上遇到了这个问题。和一个sqlite3数据库。 我通过探讨解决了这个问题,我不知道为什么我做了解决它但我发现了一些事情: 由于之前的崩溃导致数据库被锁定,重启Tomcat后出现此错误。 ActiveRecord :: StatementInvalid(Java :: JavaLang :: Error:_syscall()中的内部错误:SELECT" urls"。* FROM" urls"):
以下步骤似乎解决了这个问题,尽管在我看来原始错误只是表明数据库陷入了糟糕的状态。 - 我将Jruby降级为1.7.1 - 我从gemfile中删除了与db有关的所有gems,除了activerecord-jdbcsqlite3-adapter'。这似乎解决了这个问题。 (我删除的宝石是' sqlite-ruby' sqlite3',' activerecord-jdbc-adapter',' jruby-rack')我注意到这里的第一颗宝石是一块普通的C宝石,它不应该被部署,因为它不是有条件的,但似乎还要被鸣笛包括在战争中。 无论如何,我重新部署并且工作,甚至使用原始数据库。