Hi,
I had couple of queries around invokeMethod of JRubyScriptEngine. Can
someone please help me with these?
-
invokeMethod of Invocable interface does not take the Class of the
method
return type as parameter, hence rubyToJava call passes generic
Object.class.
Is this a problem with designing the interface?
-
when i use invokeMethod, it takes native java objects and converts
then
to ruby objects using the wrap method. On the other hand, the object
returned by invokeMethod is not a native java object, but a RubyObject
with
instance variables set to the fields of the corresponding native java
object. How do I unwrap the Ruby object to get the native java object?
e.g. if the return type is LoanResponse with two fields ssn:string and
approved:boolean, the return object i get is a Ruby Object with @ssn and
@approved instance variables in the container map.
(i tried adding another invokeMethod, which takes the Class of the
method
return type as parameter, and rubyToJava gets to use this, but that did
not
help)
thanks,
pankaj
I am using Apache BSF 3.0 beta and JRuby 1.0.3 on JDK 1.5.
Hi pankaj,
Do you know what version of JRuby engine is included in the archive
distributed in BSF project? Since JRuby engine is sensitive to JRuby’s
version, you might have a compatibility problem. As far as I remember,
some of internal API changes done on JRuby 1.0.2 - 1.1RC2 affected
JRuby engine, so each version of JRuby engine works on the exactly
compliant version of JRuby.
Moreover, as far as I remember, invokeMethod of Invocable interface
has worked completely since JRuby 1.1b1. You might need to use later
version of JRuby and JRuby engine to run your code.
Please visit
https://scripting.dev.java.net/servlets/ProjectDocumentList?folderID=8848&expandFolder=8848&folderID=0
to see version dependencies.
-Yoko
Thanks Yoko for the response.
Nopes bsf-all-3.0-beta2.jar does not seem to tell the JRubyScriptEngine
version. (attached with this mail)
I am restricted to JDK 1.5
bsf 2.4 stable version has old scripting APIs, hence i chose bsf 3.0
beta
jruby 1.1 did not work with bsf 3.0 beta, hence i chose jruby 1.0.3
I will try the JRubyScriptEngine versions from the location you
suggested. But eventually I will need an all in one Scripting Engines
jar.
Can someone please suggest highest versions of JRubyScriptEngine and
JRuby with which they have successfully used invokeMethod for sending
the native java object parameters and getting the native java object
response?
regards,
pankaj
Yoko H. wrote:
version of JRuby and JRuby engine to run your code.
someone please help me with these?
I am using Apache BSF 3.0 beta and JRuby 1.0.3 on JDK 1.5.
–
पंकज à¤à¤® तोलानी
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email
Folks,
My bad. I was creating a native Ruby object as response, and was
expecting invokeMethod return to automagically convert it to native Java
object. When I looked at the code details, I understood I need to create
native Java objects on Ruby side.
thanks,
pankaj
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email
Folks,
I tried jruby script engine version 1.1.4 and jruby version 1.1.2. This
did
not work either. invokeMethod still returns RubyObject and not the
required
native Java object.
Help please.
thanks,
pankaj
On Thu, Jul 10, 2008 at 11:05 PM, “पंकà¥à¤œ à¤à¤®. तोलानी” <