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. > > > > > > > > > >
