JRuby:无法将 class org.jruby.RubyObject 的实例转换为 class java.time.Instant

JRuby: cannot convert instance of class org.jruby.RubyObject to class java.time.Instant

我正在开发 Ruby on rails (Rails 3.2.22.4) 应用程序。 Ruby 是 JRuby (jruby1.7.x).

问题

我正在从这个 rails 应用程序调用 RESTful Java 服务。调用java服务的请求包含java.time.Instant,我尝试使用rubyTimeDateTime,直接使用java_import创建java.time.Instant,但其中 none 有效。我得到了

TypeError: cannot convert instance of class org.jruby.RubyObject to class java.time.Instant

问题

我应该使用任何 ruby class 或其他解决方法来解决此类型转换问题吗?

谢谢!

JRuby 9.2 在执行 Time/DateTime#to_java

时默认支持这些

因此,当 JRuby 的 Java 集成看到 java.time.Instant 参数时,它将自动转换为 Ruby Time(或 DateTime) 对象。

for (old) JRuby 1.7 这显然行不通,但直接创建 java.time.Instant 类型确实应该行得通,因此请继续研究。很难说你有什么失败。