Играть: переход с 2.5 на 2.6: ошибка ProvisionException

У меня ошибка при переходе с Play версии 2.5 на 2.6.

Вот список действий, которые я применил:

  • sbt clean

  • sbt компилировать

  • sbt обновление

  • SBT затмение

    У меня есть это исключение

    ProvisionException: невозможно подготовить, см. Следующие ошибки:

    Класс, который использует Security, - это

Написал файл sbt.

@Singleton
class EntityController @Inject() (val controllerComponents: ControllerComponents,
                                  val config: Config,
                                  val entities: EntityRepository,
                                  val configextractor: ConfigExtractor,
                                  val calendars: CalendarRepository,
                                  val kpis: KpiExtractor,
                                  val authz: EntityAuthorizer,
                                  val playSessionStore: PlaySessionStore,
                                  val searchService: SearchService,
                                  implicit val ec: ComputeExecutionContext
                                 ) extends BaseController with Security[CommonProfile] with KpiAware{

Что надо поменять ??

name := """fons"""
organization := "com.luxottica.retail"

version := "1.0-SNAPSHOT"

lazy val root = (project in file(".")).enablePlugins(PlayScala)

scalaVersion := "2.11.8"

// Dependencies
libraryDependencies ++= Seq(
  ws,
  filters,
  cacheApi,
  openId,
  guice,
  "commons-io" % "commons-io" % "2.5",
  "com.github.romix.akka" %% "akka-kryo-serialization" % "0.5.0",
  "com.github.simonedeponti" %% "play26-lettuce" % "0.1",
  "joda-time" % "joda-time" % "2.9.9",
  "org.mongodb.scala" %% "mongo-scala-driver" % "2.1.0",
  "org.pac4j" % "play-pac4j" % "4.0.0",
  "org.pac4j" % "pac4j-core" % "2.1.0",
  "org.pac4j" % "pac4j-http" % "2.1.0",
  "org.pac4j" % "pac4j-jwt" % "2.1.0" exclude("commons-io" , "commons-io"),
  "org.pac4j" % "pac4j-ldap" % "2.1.0",  
  "com.microsoft.azure" % "applicationinsights-core" % "1.0.10",
  "com.microsoft.azure" % "applicationinsights-logging-logback" % "1.0.10",
  "com.github.t3hnar" %% "scala-bcrypt" % "3.0",
  "org.scalariform" %% "scalariform" % "0.2.3"
)

// Test dependencies
libraryDependencies ++= Seq(
  "org.scalatestplus.play" %% "scalatestplus-play" % "2.0.0" % Test,
  "org.mockito" % "mockito-all" % "1.10.19" % Test,
  "junit" % "junit" % "4.12" % Test,
  "org.scalaz" %% "scalaz-core" % "7.1.1" % Test
)


resolvers ++= Seq(
  "snapshots" at "http://oss.sonatype.org/content/repositories/snapshots",
  "releases"  at "http://oss.sonatype.org/content/repositories/releases",
  "Scalaz Bintray Repo" at "http://dl.bintray.com/scalaz/releases",
  "Simone's repos" at "https://dl.bintray.com/simonedeponti/maven"
)

routesGenerator := InjectedRoutesGenerator

scalacOptions += "-deprecation"

evictionWarningOptions in update := EvictionWarningOptions.default.withWarnTransitiveEvictions(false)


// Adds additional packages into Twirl
//TwirlKeys.templateImports += "com.luxottica.retail.controllers._"

// Adds additional packages into conf/routes
// play.sbt.routes.RoutesKeys.routesImport += "com.luxottica.retail.binders._"

assemblyMergeStrategy in assembly := {
  case m if m.toLowerCase.endsWith("manifest.mf")          => MergeStrategy.discard
  case m if m.toLowerCase.matches("meta-inf.*\\.sf$")      => MergeStrategy.discard
  case "log4j.properties"                                  => MergeStrategy.discard
  case m if m.toLowerCase.startsWith("meta-inf/services/") => MergeStrategy.filterDistinctLines
  case "reference.conf"                                    => MergeStrategy.concat
  case _                                                   => MergeStrategy.first
}

У нас была та же проблема, мы исправили ее, обновив Scala до 2.12.


person drcimux    schedule 23.10.2017    source источник


Ответы (1)


https://github.com/pac4j/play-pac4j/issues/207

1) Ошибка внедрения конструктора, java.lang.NoClassDefFoundError: org / pac4j / play / scala / Security $ class в controllers.EntityController. (EntityController.scala: 50) в controllers.EntityController.class (EntityController.scala: 50) при поиске controllers.EntityController для 4-го параметра router.Routes. (Routes.scala: 50) при обнаружении router.Routes при обнаружении play.api.inject.RoutesProvider при обнаружении play.api.routing.Router для 1-го параметра play.api .http.JavaCompatibleHttpRequestHandler. (HttpRequestHandler.scala: 222) при нахождении play.api.http.JavaCompatibleHttpRequestHandler при нахождении play.api.http.HttpRequestHandler для 6-го параметра 6. .api.DefaultApplication.class (Application.scala: 235) при нахождении play.api.DefaultApplication при обнаружении play.api.Application Вызвано: java.lang.NoClassDefFoundError: org / pac4j / play / scala / Security $ class на контроллерах .EntityController. (EntityController.scala: 60) на контроллерах.EntityController $$ FastClassByGuice $$ f46ad4b6.newInstance () на com.google.inject.internal.DefaultConstructionProxyFactory $ FastClassProxy.newInstance (DefaultConstructionProxyFactory) .java.java.java.java. inject.internal.ConstructorInjector.provision (ConstructorInjector.java:111) в com.google.inject.internal.ConstructorInjector.construct (ConstructorInjector.java:90) в com.google.inject.internal.ConstructorBindingImpl $ Factory.get (ConstructorBindingImpl. java: 268) в com.google.inject.internal.ProviderToInternalFactoryAdapter $ 1.call (ProviderToInternalFactoryAdapter.java:46) в com.google.inject.internal.InjectorImpl.callInContext (InjectorImpl.java:1092) в com.google.inject. internal.ProviderToInternalFactoryAdapter.get (ProviderToInternalFactoryAdapter.java:40) в com.google.inject.internal.SingletonScope $ 1.get (SingletonScope.java:194) в com.google.inject.internal.InternalFactoryToProvider Adapter.get (InternalFactoryToProviderAdapter.java:41) в com.google.inject.internal.SingleParameterInjector.inject (SingleParameterInjector.java:38) в com.google.inject.internal.SingleParameterInjector.getAll (SingleParameterInjector.java:62) в com .google.inject.internal.ConstructorInjector.provision (ConstructorInjector.java:110) в com.google.inject.internal.ConstructorInjector.construct (ConstructorInjector.java:90) в com.google.inject.internal. ConstructorBindingImpl $ Factory.get (ConstructorBindingImpl.java:268) в com.google.inject.internal.InjectorImpl $ 2 $ 1.call (InjectorImpl.java:1019) в com.google.inject.internal.InjectorImpl.callInContext (InjectorImpl.java: 1092) в com.google.inject.internal.InjectorImpl $ 2.get (InjectorImpl.java:1015) в com.google.inject.internal.InjectorImpl.getInstance (InjectorImpl.java:1054) в play.api.inject.guice. GuiceInjector.instanceOf (GuiceInjectorBuilder.scala: 409) в play.api.inject.ContextClassLoaderInjector $$ anonfun $ instanceOf $ 3.apply (Injector.scala: 118) в play.api.inject.ContextClassLoaderInjector.withContext (Injector.scala: 126) в play.api.inject.ContextClassLoaderInjector.instanceOf (Injector.scala: 118) в play.api.inject.RoutesProvider $$ anonfun $ 2.apply (BuiltinModule.scala: 104) в play.api.inject.RoutesProvider $$ anonfun $ 2 .apply (BuiltinModule.scala: 104) в scala.Option.fold (Option.scala: 158) в play.api.inject.RoutesProvider.get $ lzycompute (Buil tinModule.scala: 104) в play.api.inject.RoutesProvider.get (BuiltinModule.scala: 100) в play.api.inject.RoutesProvider.get (BuiltinModule.scala: 99) в com.google.inject.internal.ProviderInternalFactory .provision (ProviderInternalFactory.java:81) на com.google.inject.internal.BoundProviderFactory.provision (BoundProviderFactory.java:72) на com.google.inject.internal.ProviderInternalFactory.circularGet (ProviderInternalFactory.java:61) на com. google.inject.internal.BoundProviderFactory.get (BoundProviderFactory.java:62) в com.google.inject.internal.SingleParameterInjector.inject (SingleParameterInjector.java:38) в com.google.inject.internal.SingleParameterInjector.getAll (SingleParameterInjector. java: 62) в com.google.inject.internal.ConstructorInjector.provision (ConstructorInjector.java:110) в com.google.inject.internal.ConstructorInjector.construct (ConstructorInjector.java:90) в com.google.inject.internal .ConstructorBindingImpl $ Factory.get (Constr uctorBindingImpl.java:268) в com.google.inject.internal.FactoryProxy.get (FactoryProxy.java:56) в com.google.inject.internal.SingleParameterInjector.inject (SingleParameterInjector.java:38) в com.google.inject .internal.SingleParameterInjector.getAll (SingleParameterInjector.java:62) в com.google.inject.internal.ConstructorInjector.provision (ConstructorInjector.java:110) в com.google.inject.internal.ConstructorInjector.construct (ConstructorInjector.java:90 ) на com.google.inject.internal. ConstructorBindingImpl $ Factory.get (ConstructorBindingImpl.java:268) на com.google.inject.internal.ProviderToInternalFactoryAdapter $ 1.call (ProviderToInternalFactoryAdapter.java:46) на com.google.inject.internal.InjectorImpl.callImplContext (InjectorImpl.callImpl.Context ) по адресу com.google.inject.internal.ProviderToInternalFactoryAdapter.get (ProviderToInternalFactoryAdapter.java:40) по адресу com.google.inject.internal.SingletonScope $ 1.get (SingletonScope.java:194) по адресу com.google.inject.internal.InternalFactoryAdapterToP .get (InternalFactoryToProviderAdapter.java:41) в com.google.inject.internal.FactoryProxy.get (FactoryProxy.java:56) в com.google.inject.internal.InjectorImpl $ 2 $ 1.call (InjectorImpl.java:1019) в com.google.inject.internal.InjectorImpl.callInContext (InjectorImpl.java:1085) в com.google.inject.internal.InjectorImpl $ 2.get (InjectorImpl.java:1015) в com.google.inject.internal.InjectorImpl.getInstance (InjectorImpl.java:1054) на play.api.inject.guic e.GuiceInjector.instanceOf (GuiceInjectorBuilder.scala: 409) at play.api.inject.guice.GuiceInjector.instanceOf (GuiceInjectorBuilder.scala: 404) at play.api.inject.ContextClassLoaderInjector (anonfun $ instanceOf. scala: 117) в play.api.inject.ContextClassLoaderInjector.withContext (Injector.scala: 126) в play.api.inject.ContextClassLoaderInjector.instanceOf (Injector.scala: 117) в play.api.inject.guice.GuiceApplicationBuilder.build (GuiceApplicationBuilder.scala: 137) в play.api.inject.guice.GuiceApplicationLoader.load (GuiceApplicationLoader.scala: 21) в play.core.server.DevServerStart $$ anonfun $ mainDev $ 1 $$ anon $ 1 $$ anonfun $ 1.apply (DevServerStart.scala: 174) в play.core.server.DevServerStart $$ anonfun $ mainDev $ 1 $$ anon $ 1 $$ anonfun $ 1.apply (DevServerStart.scala: 171) в play.utils.Threads $ .withContextClassLoader (Threads. scala: 21) на play.core.server.DevServerStart $$ anonfun $ mainDev $ 1 $$ anon $ 1.reload (DevServerStart.scala: 171) на play.core.server.D evServerStart $$ anonfun $ mainDev $ 1 $$ anon $ 1.get (DevServerStart.scala: 124) на play.core.server.AkkaHttpServer.play $ core $ server $ AkkaHttpServer $$ modelConversion (AkkaHttpServer.scala: 183) на play.core .server.AkkaHttpServer.play $ core $ server $ AkkaHttpServer $$ handleRequest (AkkaHttpServer.scala: 189) на play.core.server.AkkaHttpServer $$ anonfun $ 5.apply (AkkaHttpServer.scala: 106) на play.core.server. AkkaHttpServer $$ anonfun $ 5.применить (AkkaHttpServer.scala: 106) в akka.stream.impl.fusing. MapAsync $$ anon $ 23.onPush (Ops.scala: 1172) в akka.stream.impl.fusing.GraphInterpreter.processPush (GraphInterpreter.scala: 499) в akka.stream.impl.fusing.GraphInterpreter.processEvent (GraphInterpreter.scala: 462) по адресу akka.stream.impl.fusing.GraphInterpreter.execute (GraphInterpreter.scala: 368) по адресу akka.stream.impl.fusing.GraphInterpreterShell.runBatch (ActorGraphInterpreter.scala: 571) по адресу akka.preter.impl.fusing. $ AsyncInput.execute (ActorGraphInterpreter.scala: 457) в akka.stream.impl.fusing.GraphInterpreterShell.processEvent (ActorGraphInterpreter.scala: 546) в akka.stream.impl.fusing.ActorGraphInterpreter.akka $ $$ processEvent (ActorGraphInterpreter.scala: 725) в akka.stream.impl.fusing.ActorGraphInterpreter 514) по адресу akka.stream.impl.fusing.ActorGraphInterpreter.aroundReceive (ActorGra phInterpreter.scala: 650) в akka.actor.ActorCell.receiveMessage (ActorCell.scala: 527) в akka.actor.ActorCell.invoke (ActorCell.scala: 496) в akka.dispatch.Mailbox.processMailbox (Mailbox.scala: 257 ) в akka.dispatch.Mailbox.run (Mailbox.scala: 224) в akka.dispatch.Mailbox.exec (Mailbox.scala: 234) в akka.dispatch.forkjoin.ForkJoinTask.doExec (ForkJoinTask.java:260) в akka .dispatch.forkjoin.ForkJoinPool $ WorkQueue.runTask (ForkJoinPool.java:1339) по адресу akka.dispatch.forkjoin.ForkJoinPool.runWorker (ForkJoinPool.java:1979) по адресу akka.dispatch.java:1979) ) Вызвано: java.lang.ClassNotFoundException: org.pac4j.play.scala.Security $ class в java.net.URLClassLoader.findClass (URLClassLoader.java:381) в java.lang.ClassLoader.loadClass (ClassLoader.java:424 ) at java.lang.ClassLoader.loadClass (ClassLoader.java:357) ... еще 91

person Alejandro Rodríguez    schedule 24.10.2017