标签: jruby

不同的Ruby线程模型(Ruby vs JRuby)作为开发人员对您的代码有什么实际影响?

我试图了解MRI Ruby 1.8和JRuby之间不同线程模型的实际影响.

作为开发人员,这对我来说意味着什么?

而且,由于不同的线程模型,MRI Ruby 1.8中的代码是否有任何实际的JRuby性能特征?

ruby multithreading jruby

7
推荐指数
3
解决办法
3796
查看次数

使用Jetty从jar文件中提供静态内容?

这应该相当容易,但出于某种原因,我尝试的几乎所有内容似乎都在我将其连接到Web浏览器时发出"未找到"错误.

我有一个静态上下文,对于ResourceBase,我有'file:jar:/ path/to/myjar!/.'...任何想法,我缺少什么?

java jruby jetty

7
推荐指数
1
解决办法
1277
查看次数

如何将Java Date对象转换为JRuby Time对象?

使用JRuby,是否有一种将Java Date对象转换为JRuby Time对象的好方法?我正在使用最新版本的JRuby(1.3.1)和Java SE 6.

jruby

7
推荐指数
1
解决办法
3915
查看次数

warbler配置和jruby版本

我刚刚安装了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

有什么想法吗?

ruby-on-rails jruby warbler

7
推荐指数
1
解决办法
1820
查看次数

使用自签名证书

我只是试图了解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 ssl jruby keytool

7
推荐指数
1
解决办法
9279
查看次数

如何对ASCII字符进行URL编码?

我正在使用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"

ruby jruby url-encoding ruby-on-rails-3

7
推荐指数
1
解决办法
3457
查看次数

编写依赖于Gems和Maven项目的JRuby代码

虽然半年多以前就提出类似的问题,但我想知道编写JRuby代码的最佳方法是什么,这取决于宝石,但也取决于Maven项目.Bundler似乎是Ruby社区的标准Maven工具,我更喜欢使用它,但看起来Bundler 不支持Maven依赖.

gem install mvn:<groupId>:<artifactId>唯一真正的解决办法?我会把它放到Rakefile中吗?然后人们用rake而不是捆绑器来做他们所有的宝石安装吗?有没有人有其他建议来解决这个问题?谢谢.

java jar jruby maven

7
推荐指数
1
解决办法
3414
查看次数

使用JRuby直接调用Android Java方法

我最近一直在探索如何通过SL4A中的JRuby访问Android的库.我知道可以用Ruboto设计应用程序,但我只是想用一个简单的脚本来访问当前SL4A不提供的API.我可以导入普通的罐子等,但我无法获得Android的API.具体我想访问'android.nfc'.有没有办法做到这一点,我还没有想出或有可能不工作; SL4A确实声明JRuby提供了直接的API桥接.

谢谢,克莱门特

java android jruby nfc sl4a

7
推荐指数
1
解决办法
404
查看次数

Jruby中的Java数组

我有一个Java库,我正在从中提取一些数据.

它出了一个3D数组.但是我无能为力.

[[D[]@5615a6e0
Run Code Online (Sandbox Code Playgroud)

是我得到的回应.我试过映射它:

{ |arr| arr.map { |arr| arr.to_a } }
Run Code Online (Sandbox Code Playgroud)

但我什么都没得到,解析这个java数组的最佳方法是什么?

ruby java jruby

7
推荐指数
1
解决办法
2484
查看次数

HBase shell扫描字节到字符串的转换

我想扫描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.

hbase jruby

7
推荐指数
2
解决办法
1万
查看次数