Scala 播放:迁移2.5到2.6:错误设置异常
从Play 2.5版迁移到2.6版时出现错误 以下是我已应用的操作列表:Scala 播放:迁移2.5到2.6:错误设置异常,scala,dependency-injection,playframework-2.6,Scala,Dependency Injection,Playframework 2.6,从Play 2.5版迁移到2.6版时出现错误 以下是我已应用的操作列表: sbt清洁 sbt编译 sbt更新 日食 我得到了这个例外 ProvisionException:无法设置,请查看以下错误: 1) 注入构造函数java.lang.NoClassDefFoundError时出错:org/pac4j/play/scala/Security$class at controllers.EntityController.(EntityController.scala:50) at control
- sbt清洁
- sbt编译
- sbt更新
- 日食
我得到了这个例外
ProvisionException:无法设置,请查看以下错误:
1) 注入构造函数java.lang.NoClassDefFoundError时出错:org/pac4j/play/scala/Security$class
at controllers.EntityController.(EntityController.scala:50)
at controllers.EntityController.class(EntityController.scala:50)
查找控制器时。EntityController
用于router.Routes的第四个参数。(Routes.scala:50)
定位路由器时。路由
查找play.api.inject.routeProvider时
查找play.api.routing.Router时
用于play.api.http.JavaCompatibleHttpRequestHandler的第一个参数。(HttpRequestHandler.scala:222)
查找play.api.http.JavaCompatibleHttpRequestHandler时
查找play.api.http.HttpRequestHandler时
用于play.api.DefaultApplication的第6个参数。(Application.scala:236)
at play.api.DefaultApplication.class(Application.scala:235)
查找play.api.DefaultApplication时
查找play.api.Application时
原因:java.lang.NoClassDefFoundError:org/pac4j/play/scala/Security$class
at controllers.EntityController.(EntityController.scala:60)
在controllers.EntityController$$FastClassByGuice$$f46ad4b6.newInstance()上
在com.google.inject.internal.DefaultConstructionProxyFactory$FastClassProxy.newInstance(DefaultConstructionProxyFactory.java:89)
位于com.google.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.InternalFactoryToProviderAdapter.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)
at play.api.inject.guice.GuiceInjector.instanceOf(guiceinjectbuilder.scala:409)
at play.api.inject.ContextClassLoaderInjector$$anonfun$instanceOf$3.apply(Injector.scala:118)
at play.api.inject.ContextClassLoaderInjector.withContext(Injector.scala:126)
at play.api.inject.ContextClassLoaderInjector.instanceOf(Injector.scala:118)
at play.api.inject.routeProvider$$anonfun$2.apply(BuiltinModule.scala:104)
at play.api.inject.routeProvider$$anonfun$2.apply(BuiltinModule.scala:104)
在scala.Option.fold处(Option.scala:158)
at play.api.inject.routeProvider.get$lzycompute(BuiltinModule.scala:104)
at play.api.inject.routeProvider.get(BuiltinModule.scala:100)
at play.api.inject.routeProvider.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.CircularTarget(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(ConstructorBindingImpl.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.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.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
在com.google.inject.internal.FactoryProxy.g上
@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 }