Hi Linda,
> Thank you for you assistance.
>
You are very welcome, glad that I could help a little bit.
> I modified my code for the approach using manager.registerBean() :
>
> BSFManager manager = new BSFManager();
> manager.registerBean( "myBeanName", new MyBeanClazz("str for regBean");
> manager.exec( "javascript", "test", 0,0, "bsf.lookupBean(\"myBeanName\").myMethod();" );
>
> This time it works and printed out the string in the console. Thanks.
>
Fine.
> It looks that the BSFManager defaultly declared a bean "bsf" so the script can always use it just like a predefined object in the javascript.
>
It is put into the global context by the Javascript engine.
> But for my ObjectRegistery approach, even I tried to call bsf.lookupBean in the script code, it still doesn't work, anything still missing here?
>
Hmm, did you set the the ObjectRegistry object to your BSFManager's
instance?
Something along the lines:
bm=new org.apache.bsf.BSFManager();
// ... do whatever you need to do (setup, invoking scripsts, maybe
nothing, whatever)
or=new org.apache.bsf.ObjectRegistry();
// or if you want to use bm's ObjectRegistry object as a parent:
or=new org.apache.bsf.ObjectRegistry(bm.getObjectRegistry());
// do whatever you need to do with "or" (registering objects for the
scripts)....
bm.setObjectRegistry(or); // now set "bm" to the new
ObjectRegistry object "or"
// continue to invoke scripts