Hi.. Did you read this...?? https://github.com/jruby/jruby/wiki/CallingJavaFromJRuby -----Mensaje original----- De: "Ray H." <email@example.com> Enviado: 03/12/2013 15:25 Para: "firstname.lastname@example.org" <email@example.com> Asunto: [jruby-user] Re: Passing JRuby to Java Christian, I wanted to get a bit more info about the Marshal class, but cannot seem to find it. I searched in the JRuby API but only saw the MarshalStream class. Like I said, I need to pass the objects to Drools and Drools need to recognize them as a special named class for the "facts" to work. That was why I created a Java class to inspect an object and then passed a JRuby mongoid/moped object. JRuby properly see it as an object of type "Record" or whatever I have called it, but my Java program saw the class as "RubyObject". Drools is a rules engine that responds to facts that are actually Java classes with specific values. So if for example, I have customer data in a class but Drools not see the class as being "Customer", then it will not trigger processing. The class types have to match as well as the method calls. Ray -- Posted via http://www.ruby-forum.com/.
on 2013-12-03 16:15
on 2013-12-08 05:16
Manuel, I have tried many things to resolve this issue. Basically the issue is when passing JRuby objects to Java. For standard objects/ primities such as Strings, JRuby has some standard builtin translations. The problem comes in if you want to pass any instance of a class. It will be translated to a RubyObject. I have tried Java reflection, but I cannot find any way to execute the methods nor to set/ retrieve the contents of a JRuby class. I have done this many times in Groovy, where the Groovy classes are first class Java classes. I was hoping to do the same with JRuby and Rails. I would even be willing to create a wrapper class to give the Java objects access to the methods and data in the Ruby class. I cannot see anyway to do that... before you mention embedding, keep in mind that I not trying to instantiate the class within Java but to use an instance of the class created by Rails. Thoughts? Ray