I am trying to add custom converter ( logging.logback.SchemaNameConverter) to the backup configuration that the converter uses Http.Context. The converter is located inside the game module.
java.lang.ClassNotFoundException: logging.logback.SchemaNameConverter
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at controllers.Application.list3(Application.java:106)
at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$9$$anonfun$apply$9.apply(Routes.scala:349)
at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$9$$anonfun$apply$9.apply(Routes.scala:349)
at play.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:157)
at play.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:156)
at play.core.routing.HandlerInvokerFactory$JavaActionInvokerFactory$$anon$14$$anon$3$$anon$1.invocation(HandlerInvoker.scala:136)
at play.core.j.JavaAction$$anon$1.call(JavaAction.scala:73)
at ActionCreator$1.call(ActionCreator.java:25)
at org.pac4j.play.java.SecureAction.lambda$null$1(SecureAction.java:106)
at org.pac4j.core.engine.DefaultSecurityLogic.perform(DefaultSecurityLogic.java:139)
at org.pac4j.play.java.SecureAction.lambda$internalCall$2(SecureAction.java:101)
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590)
at play.core.j.HttpExecutionContext$$anon$2.run(HttpExecutionContext.scala:56)
at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:39)
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:415)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
From my initial diagnosis, the problem seems to be related to class loaders. The main application uses ReloadableClassLoader(v1){file:.../target/scala-2.11/classes/}classes to load the application, where, since logback uses PlayDependencyClassLoaderto load its dependencies. Since the converter class is inside the application, it was not found by the loader PlayDependencyClassLoader.
source
share