Nice!
Thanks!

On Fri, Jun 29, 2012 at 8:08 AM, Romain Manni-Bucau
<[email protected]>wrote:

> This one is fine is you don't create a new classloader ;)
>
> ClassLoader old = Thread.current().getContextClassLoader();
> Thread.current().setContextClassLoader(appCl);
> try {
>  // call
> } finally {
>   Thread.current().setContextClassLoader(old);
> }
>
> - Romain
>
>
> 2012/6/29 Thiago Veronezi <[email protected]>
>
> > Hi Romain,
> > Do you know any trick to use that classloader? The only one I know is the
> > "Thread" trick...
> >
> > thread.setContextClassLoader(appContext.getClassLoader());
> > thread.start();
> >
> > Do you think it is fine to use that?
> >
> > []s,
> > Thiago.
> >
> >
> >
> > On Fri, Jun 29, 2012 at 7:48 AM, Romain Manni-Bucau
> > <[email protected]>wrote:
> >
> > > Hi Thiago,
> > >
> > > look the beanmanager helper, it takes an app id to find it and use its
> > > classloader.
> > >
> > > So typically we need to add the list of deployed app in the gui and
> > select
> > > one of them to run the script.
> > >
> > > - Romain
> > >
> > >
> > > 2012/6/29 Thiago Veronezi <[email protected]>
> > >
> > > > Guys,
> > > > I am trying to run the following code from the Console panel.
> > > >
> > > >
> > > > //
> > > >
> > > >
> > >
> >
> *************************************************************************************************************
> > > > var myImports = new JavaImporter(
> > > >    java.util.Properties,
> > > >    javax.naming.InitialContext,
> > > >    org.superbiz.moviefun.Movie
> > > >
> > > > );
> > > >
> > > > with (myImports) {
> > > >    var p = new Properties();
> > > >    p.put("java.naming.factory.initial",
> > > > "org.apache.openejb.client.LocalInitialContextFactory");
> > > >
> > > >    var ctx = new InitialContext(p);
> > > >    var myBean = ctx.lookup("MoviesRemote");
> > > >
> > > >    util.save('result', myBean.count());
> > > >
> > > >    var movie = new Movie();
> > > >    movie.setDirector('myDirector');
> > > >    movie.setTitle('myTitle');
> > > >    movie.setTitle('myTitle');
> > > >    movie.setYear(2012);
> > > >    movie.setGenre('action');
> > > >    movie.setRating(10);
> > > >
> > > >    myBean.addMovie(movie);
> > > >    var movies = myBean.getMovies();
> > > >
> > > >    var current = null;
> > > >    for (var i = 0; i < movies.size(); i++) {
> > > >        current = movies.get(i);
> > > >        util.save('movieId' + current.getId(), current.getTitle());
> > > >    }
> > > > }
> > > > //
> > > >
> > > >
> > >
> >
> *************************************************************************************************************
> > > >
> > > > The thing is that when I call the "ScriptEngine.eval(script,
> > > > executionContext)" (-> OpenEJBScripter, line 76) to run the script,
> the
> > > > classloader does not contain the Movie class. Do you know how could I
> > set
> > > > the proper classloader to execute that call?
> > > >
> > > > []s,
> > > > Thiago.
> > > >
> > >
> >
>

Reply via email to