Scala播放-ProvisionException:找不到合适的构造函数
我到处都找了,但答案没有帮助。以下是stacktrace:Scala播放-ProvisionException:找不到合适的构造函数,scala,playframework,Scala,Playframework,我到处都找了,但答案没有帮助。以下是stacktrace: ! @7832lo6ll - Internal server error, for (GET) [/] -> play.api.UnexpectedException: Unexpected exception[ProvisionException: Unable to provision, see the following errors: 1) Could not find a suitable constructor i
! @7832lo6ll - Internal server error, for (GET) [/] ->
play.api.UnexpectedException: Unexpected exception[ProvisionException: Unable to provision, see the following errors:
1) Could not find a suitable constructor in controllers.FileCtrl. Classes must have either one (and only one) constructor annotated with @Inject or a zero-argument constructor that is not private.
at controllers.FileCtrl.class(FileCtrl.scala:34)
while locating controllers.FileCtrl
for parameter 11 at router.Routes.<init>(Routes.scala:155)
while locating router.Routes
while locating play.api.inject.RoutesProvider
while locating play.api.routing.Router
1 error]
at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:165) ~[play-server_2.11-2.4.11.jar:2.4.11]
at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:121) ~[play-server_2.11-2.4.11.jar:2.4.11]
at scala.Option.map(Option.scala:146) ~[scala-library-2.11.8.jar:na]
at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1.apply(DevServerStart.scala:121) ~[play-server_2.11-2.4.11.jar:2.4.11]
at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1.apply(DevServerStart.scala:119) ~[play-server_2.11-2.4.11.jar:2.4.11]
at scala.util.Success.flatMap(Try.scala:231) ~[scala-library-2.11.8.jar:na]
at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1.apply(DevServerStart.scala:119) ~[play-server_2.11-2.4.11.jar:2.4.11]
at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1.apply(DevServerStart.scala:111) ~[play-server_2.11-2.4.11.jar:2.4.11]
at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24) ~[scala-library-2.11.8.jar:na]
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24) ~[scala-library-2.11.8.jar:na]
Caused by: com.google.inject.ProvisionException: Unable to provision, see the following errors:
1) Could not find a suitable constructor in controllers.FileCtrl. Classes must have either one (and only one) constructor annotated with @Inject or a zero-argument constructor that is not private.
at controllers.FileCtrl.class(FileCtrl.scala:34)
while locating controllers.FileCtrl
for parameter 11 at router.Routes.<init>(Routes.scala:155)
while locating router.Routes
while locating play.api.inject.RoutesProvider
while locating play.api.routing.Router
1 error
at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1025) ~[guice-4.0.jar:na]
at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1051) ~[guice-4.0.jar:na]
at play.api.inject.guice.GuiceInjector.instanceOf(GuiceInjectorBuilder.scala:321) ~[play_2.11-2.4.11.jar:2.4.11]
at play.api.inject.guice.GuiceInjector.instanceOf(GuiceInjectorBuilder.scala:316) ~[play_2.11-2.4.11.jar:2.4.11]
at play.api.Application$class.routes(Application.scala:112) ~[play_2.11-2.4.11.jar:2.4.11]
at play.api.DefaultApplication.routes(Application.scala:241) ~[play_2.11-2.4.11.jar:2.4.11]
at play.api.Play$$anonfun$start$1.apply$mcV$sp(Play.scala:90) ~[play_2.11-2.4.11.jar:2.4.11]
at play.api.Play$$anonfun$start$1.apply(Play.scala:87) ~[play_2.11-2.4.11.jar:2.4.11]
at play.api.Play$$anonfun$start$1.apply(Play.scala:87) ~[play_2.11-2.4.11.jar:2.4.11]
at play.utils.Threads$.withContextClassLoader(Threads.scala:21) ~[play_2.11-2.4.11.jar:2.4.11]
所以实际上有一个@Inject
播放版本为2.4,Scala版本为2.11.6
最让我困惑的是stacktrace没有提到任何进一步的问题,例如,没有提到注入类,这可能是这里的问题。只是为了测试,也许您可以尝试messagesApi的普通构造函数参数,而不是curried版本?所以不是
(val messagesApi: MessagesApi)
只是
您是否尝试隐式传递messagesApi?
(val messagesApi: MessagesApi)
([other constructor params ...], val messagesApi: MessagesApi)