我试图了解MRI Ruby 1.8和JRuby之间不同线程模型的实际影响.
作为开发人员,这对我来说意味着什么?
而且,由于不同的线程模型,MRI Ruby 1.8中的代码是否有任何实际的JRuby性能特征?
这应该相当容易,但出于某种原因,我尝试的几乎所有内容似乎都在我将其连接到Web浏览器时发出"未找到"错误.
我有一个静态上下文,对于ResourceBase,我有'file:jar:/ path/to/myjar!/.'...任何想法,我缺少什么?
使用JRuby,是否有一种将Java Date对象转换为JRuby Time对象的好方法?我正在使用最新版本的JRuby(1.3.1)和Java SE 6.
我刚刚安装了jruby-1.4.0来玩它.我注意到,warbler默认将我的rails部署打包.我的生产使用JRuby的完整-1.3.1(我已经加入到我的lib目录冻结的版本),但莺是增加JRuby的核心 - 1.4当它打包一切.这对我来说有点令人担忧,因为我不想要任何版本问题或冲突,我只想冻结我的jruby版本,以便在我准备升级时必须明确地更改它.有谁知道实现这一目标的最佳方法?
我读过的文档说它将从WARBLER_HOME中取出所有罐子并打包它们,所以我认为jruby-core-1.4就在那里,但事实并非如此.如何从部署中省略这一点,或者具体说"只给我XX版本的jruby"
我通过跑步找到了莺回家:
jruby -S gem which warbler
Run Code Online (Sandbox Code Playgroud)
这使
/opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/warbler-0.9.14/lib/
Run Code Online (Sandbox Code Playgroud)
但它只有一个机架罐,没有提到jruby-core-1.4
有什么想法吗?
我只是试图了解SSL.
我在localhost上设置了一个Jetty服务器,并使用Keytool生成了我自己的证书.
现在,当我去https:// localhost:8443 /我得到的不能相信这个证书错误.
我用
keytool -export -alias pongus -keystore keystore -file certfile.cer
创建我认为是客户端需要对服务器进行身份验证的证书.(这是我可能非常错的地方!)
我有以下ruby代码:
require 'net/https'
require 'openssl'
require 'open-uri'
puts 'yay' if File.exists?('certfile.cer')
uri = URI.parse("https://localhost:8443/")
http_session = Net::HTTP.new(uri.host, uri.port)
http_session.use_ssl = true
http_session.verify_mode = OpenSSL::SSL::VERIFY_PEER
http_session.ca_file = 'certfile.cer'
res = http_session.start do |http|
# do some requests here
http.get('/')
end
Run Code Online (Sandbox Code Playgroud)
这会打印'yay',因此certfile.cer文件确实存在.
但是我得到了错误
/Applications/NetBeans/NetBeans 6.8.app/Contents/Resources/NetBeans/ruby2/jruby-1.4.0/lib/ruby/1.8/net/http.rb:586 warning: can't set verify locations
/Applications/NetBeans/NetBeans 6.8.app/Contents/Resources/NetBeans/ruby2/jruby-1.4.0/lib/ruby/1.8/net/http.rb:586:in `connect': certificate verify failed (OpenSSL::SSL::SSLError)
Run Code Online (Sandbox Code Playgroud)
我有什么想法我做错了吗?
编辑
我想得到它所以我保证我连接到正确的服务器,服务器可以保证我连接到它,没有任何篡改.我正在开发服务器和客户端.
我正在使用Ruby提取文件的URL以下载和下载.文件名有utf8个字符,例如:
www.domain.com/.../ÖÇÄÜ360ÓïÒôÖúÀí.txt
Run Code Online (Sandbox Code Playgroud)
尝试下载上述URL时,失败.使用URI::escape生成的URI也不起作用:
www.domain.com/.../%C3%96%C3%87%C3%84%C3%9C360%C3%93%C3%AF%C3%92%C3%B4%C3%96%C3%BA%C3%80%C3%AD.txt
Run Code Online (Sandbox Code Playgroud)
但是,如果我按照URL编码参考,它的工作原理:
www.domain.com/.../%D6%C7%C4%DC360%D3%EF%D2%F4%D6%FA%C0%ED.txt
Run Code Online (Sandbox Code Playgroud)
我试图在Ruby中搜索一个完全相同编码的函数,但我找不到任何函数.在我尝试编写一个在上面的链接中实现表的函数之前,我想询问是否有人知道任何现有的库来执行此操作.如果我决定这样做,我应该编码的角色范围很明显,而不是一切.
我正在使用JRuby 1.6.2和RUBY_VERSION =>"1.8.7"
虽然半年多以前就提出了类似的问题,但我想知道编写JRuby代码的最佳方法是什么,这取决于宝石,但也取决于Maven项目.Bundler似乎是Ruby社区的标准Maven工具,我更喜欢使用它,但看起来Bundler 不支持Maven依赖.
是gem install mvn:<groupId>:<artifactId>唯一真正的解决办法?我会把它放到Rakefile中吗?然后人们用rake而不是捆绑器来做他们所有的宝石安装吗?有没有人有其他建议来解决这个问题?谢谢.
我最近一直在探索如何通过SL4A中的JRuby访问Android的库.我知道可以用Ruboto设计应用程序,但我只是想用一个简单的脚本来访问当前SL4A不提供的API.我可以导入普通的罐子等,但我无法获得Android的API.具体我想访问'android.nfc'.有没有办法做到这一点,我还没有想出或有可能不工作; SL4A确实声明JRuby提供了直接的API桥接.
谢谢,克莱门特
我有一个Java库,我正在从中提取一些数据.
它出了一个3D数组.但是我无能为力.
[[D[]@5615a6e0
Run Code Online (Sandbox Code Playgroud)
是我得到的回应.我试过映射它:
{ |arr| arr.map { |arr| arr.to_a } }
Run Code Online (Sandbox Code Playgroud)
但我什么都没得到,解析这个java数组的最佳方法是什么?
我想扫描hbase表并将整数看作字符串(而不是它们的二进制表示).我可以进行转换,但不知道如何使用hbase shell中的Java API编写扫描语句:
org.apache.hadoop.hbase.util.Bytes.toString(
"\x48\x65\x6c\x6c\x6f\x20\x48\x42\x61\x73\x65".to_java_bytes)
org.apache.hadoop.hbase.util.Bytes.toString("Hello HBase".to_java_bytes)
Run Code Online (Sandbox Code Playgroud)
我将非常高兴有扫描示例,获取搜索二进制数据(long)并输出正常字符串.我使用的是hbase shell,而不是JAVA.