jruby-openssl 中已经初始化的常量
Posted
技术标签:
【中文标题】jruby-openssl 中已经初始化的常量【英文标题】:Already initialized constant in jruby-openssl 【发布时间】:2013-01-08 01:00:24 【问题描述】:在扭矩箱上运行我的 rails 应用程序时,我得到了很多
already initialized constant: ...
来自gems/jruby-openssl-0.8.2/lib/shared/jruby-openssl.rb:16
的警告。这是一个安全问题吗?有什么办法可以消除这些警告?
【问题讨论】:
也有同样的警告 我正在尝试解决这个问题,但甚至找不到代码来查看违规行的内容。我的猜测是这是与 JRuby 本身打包的,需要发给 CodeHaus.org 上的 JRuby 组?还在寻找... 【参考方案1】:我终于可以通过完全移除宝石来摆脱它。根据这个source,jruby-openssl 现在被直接拉到了 jruby 项目中,不再需要作为 gem。
感谢大家和我一起研究这个问题。
【讨论】:
【参考方案2】:在 Gemfile 中将以下内容添加到我的行后,我不再收到这些错误。
gem 'jruby-openssl', :require => false
我希望这会有所帮助。
【讨论】:
从对 cmets 的阅读看来,这似乎只需要可用。添加 require => false 似乎是合乎逻辑的,在我在某处读到这确实是 jruby 库打包 openssl 方式的一种解决方法(根据 Jruby 网站上的一些帖子。 这也适用于我。但想知道到底发生了什么:) 您能否添加一个您找到此信息的来源?在应用您的修复之前,我想进一步阅读。 我看到的资源,我再也找不到了,是在我真的只是想找出为什么jruby-ossl库中没有代码的时候的参考,这是因为它已包含在 jruby 核心中。 jruby-core 加载 openssl 的方式(我相信这是问题的真正所在),是什么让你需要把这个 gem 放在你的 Gemfile 中(尝试找到 Gem 的源代码)。因此,如果需要,放置 require => false 可以使代码可用。 也许完全移除 gem 会暴露错误。我还没有尝试过这一步,但是如果你这样做并且有错误,然后搜索它,你可能会找到它。我认为这是一个 JRUBY 解决方法,因为它们与 obenssl 的集成有些模糊,因为这个 gem 中没有源代码(至少目前在 github 上)。以前的版本,当然。以上是关于jruby-openssl 中已经初始化的常量的主要内容,如果未能解决你的问题,请参考以下文章
为啥长臂猿会抛出“未初始化的常量 Gibbon::API (NameError)”