Ok, I was suspecting something like that, without being able to fix it.

Thanks for the tip!

> On 22 Jan 2015, at 07:48, Mo LOUKILI <[email protected]> wrote:
> 
> This is due to the plugin classloader since its parent class loader is the 
> main Thread classloader.
> 
> I would suggest to change the OServerPluginManager class line 303
> pluginClassLoader = new URLClassLoader(new URL[] { url });
> by 
> pluginClassLoader = new URLClassLoader(new URL[] { url }, 
> OServerPlugin.class.getClassLoader ());  
> 
> This will insure that orientdb will work in embedded mode using a different 
> classloader.
> 
> 
> Le lundi 12 janvier 2015 08:55:53 UTC-8, Bertrand Quenin a écrit :
> Hi,
> 
> I'm having trouble in play framework when trying to use the Lucene plugin. 
> Here is what my Global.scala look like:
> 
> import com.orientechnologies.orient.server.OServerMain
> import com.tinkerpop.blueprints.impls.orient.OrientGraphFactory
> import play.api._
> 
> object Global extends GlobalSettings {
>   val orientdb = OServerMain.create
>   val factory = new OrientGraphFactory("plocal:databases/graphdb", "admin", 
> "admin")
> 
>   override def onStart(app: Application) {
>     
> orientdb.startup(getClass.getClassLoader.getResourceAsStream("orientdb-config.xml"))
>     orientdb.activate
> 
>     factory.setAutoStartTx(false)
> 
>     Logger.info("Application has started")
>   }
> 
>   override def onStop(app: Application) {
>     orientdb.shutdown
> 
>     Logger.info("Application shutdown...")
>   }
> }
> 
> And here is the result:
> 
> ->java.lang.NoClassDefFoundError: 
> com/orientechnologies/orient/server/plugin/OServerPluginAbstract
>      java.lang.ClassLoader.defineClass1(Native Method)
>      java.lang.ClassLoader.defineClass(ClassLoader.java:760)
>      java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
>      java.net.URLClassLoader.defineClass(URLClassLoader.java:455)
>      java.net.URLClassLoader.access$100(URLClassLoader.java:73)
>      java.net.URLClassLoader$1.run(URLClassLoader.java:367)
>      java.net.URLClassLoader$1.run(URLClassLoader.java:361)
>      java.security.AccessController.doPrivileged(Native Method)
>      java.net.URLClassLoader.findClass(URLClassLoader.java:360)
>      java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>      java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>      java.lang.Class.forName0(Native Method)
>      java.lang.Class.forName(Class.java:344)
>      
> com.orientechnologies.orient.server.plugin.OServerPluginManager.startPluginClass(OServerPluginManager.java:254)
>      
> com.orientechnologies.orient.server.plugin.OServerPluginManager.installDynamicPlugin(OServerPluginManager.java:343)
>      
> com.orientechnologies.orient.server.plugin.OServerPluginManager.updatePlugin(OServerPluginManager.java:194)
>      
> com.orientechnologies.orient.server.plugin.OServerPluginManager.updatePlugins(OServerPluginManager.java:283)
>      
> com.orientechnologies.orient.server.plugin.OServerPluginManager.startup(OServerPluginManager.java:85)
>      
> com.orientechnologies.orient.server.OServer.registerPlugins(OServer.java:820)
>      com.orientechnologies.orient.server.OServer.activate(OServer.java:256)
>      Global$.onStart(Global.scala:11)
>      play.api.GlobalPlugin.onStart(GlobalSettings.scala:220)
>      
> play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:91)
>      
> play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:91)
>      scala.collection.immutable.List.foreach(List.scala:383)
>      play.api.Play$$anonfun$start$1.apply$mcV$sp(Play.scala:91)
>      play.api.Play$$anonfun$start$1.apply(Play.scala:91)
>      play.api.Play$$anonfun$start$1.apply(Play.scala:91)
>      play.utils.Threads$.withContextClassLoader(Threads.scala:21)
>      play.api.Play$.start(Play.scala:90)
>      
> play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(ApplicationProvider.scala:157)
>      
> play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(ApplicationProvider.scala:130)
>      scala.Option.map(Option.scala:145)
>      
> play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1.apply(ApplicationProvider.scala:130)
>      
> play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1.apply(ApplicationProvider.scala:128)
>      scala.util.Success.flatMap(Try.scala:230)
>      
> play.core.ReloadableApplication$$anonfun$get$1.apply(ApplicationProvider.scala:128)
>      
> play.core.ReloadableApplication$$anonfun$get$1.apply(ApplicationProvider.scala:120)
>      
> scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
>      
> scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
>      
> scala.concurrent.forkjoin.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1361)
>      scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
>      
> scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
>      scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
>      
> scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
> 
> I'm not sure how to resolve this. It seems that there is some classloader 
> magic failing here, but I'm puzzled on how to solve it.
> 
> Thanks,
> BQ.
> 
> -- 
> 
> --- 
> You received this message because you are subscribed to a topic in the Google 
> Groups "OrientDB" group.
> To unsubscribe from this topic, visit 
> https://groups.google.com/d/topic/orient-database/ttcTWOadSAk/unsubscribe 
> <https://groups.google.com/d/topic/orient-database/ttcTWOadSAk/unsubscribe>.
> To unsubscribe from this group and all its topics, send an email to 
> [email protected] 
> <mailto:[email protected]>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to