【发布时间】:2017-07-01 14:56:56
【问题描述】:
我收到这些错误 ProvisionException: 无法配置,查看以下错误:
com.google.inject.ProvisionException: Unable to provision, see the following errors:
1) Could not find a suitable constructor in models.factory.FactoryHandler. Classes must have either one (and only one) constructor annotated with @Inject or a zero-argument constructor that is not private.
at models.factory.FactoryHandler.class(FactoryHandler.scala:7)
while locating models.factory.FactoryHandler
for parameter 0 at controllers.DirectUserController.<init>(DirectUserController.scala:90)
while locating controllers.DirectUserController
for parameter 7 at router.Routes.<init>(Routes.scala:124)
while locating router.Routes
while locating play.api.inject.RoutesProvider
while locating play.api.routing.Router
1 error
com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1025)
com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1051)
play.api.inject.guice.GuiceInjector.instanceOf(GuiceInjectorBuilder.scala:321)
play.api.inject.guice.GuiceInjector.instanceOf(GuiceInjectorBuilder.scala:316)
play.api.Application$class.routes(Application.scala:111)
play.api.DefaultApplication.routes(Application.scala:240)
play.api.Play$$anonfun$start$1.apply$mcV$sp(Play.scala:90)
play.api.Play$$anonfun$start$1.apply(Play.scala:87)
play.api.Play$$anonfun$start$1.apply(Play.scala:87)
play.utils.Threads$.withContextClassLoader(Threads.scala:21)
play.api.Play$.start(Play.scala:87)
这里是代码
class FactoryHandler(var s:String="real") {
val log = LoggerFactory.getLogger(this.getClass)
log.debug("choice {}",s)
}
这是 DirectUserController 的第 90 行
class DirectUserController @Inject() (var factory:FactoryHandler) extends Controller {
//other Action code
}
我还在路由文件中添加了代码
routesGenerator := InjectedRoutesGenerator
我正在使用 play framework 2.4 请帮助我为什么会出现此错误
【问题讨论】:
标签: java scala playframework playframework-2.4