我正在使用Play 2.6和ReactiveMongo 0.13构建一个Web应用程序。但是当我尝试运行应用程序时,我得到了这个输出:
ProvisionException: Unable to provision, see the following errors:
1) No implementation for play.modules.reactivemongo.ReactiveMongoApi was bound.
while locating play.modules.reactivemongo.ReactiveMongoApi
for the 2nd parameter of controllers.Employees.<init>(Employees.scala:17)
...
1 error
此错误引用的类是使用此构造函数声明的:
class Employees @Inject() (cc: ControllerComponents,
val reactiveMongoApi: ReactiveMongoApi,
implicit val materializer: akka.stream.Materializer
)
ReactiveMongo
已指定,应该被注入。
我在网上看到解决方案是将以下行添加到application.conf
:
play.modules.enabled += "play.modules.reactivemongo.ReactiveMongoModule"
问题是我做到了,但我仍然得到依赖注入错误。我不知道从哪里开始。
答案 0 :(得分:0)
我在另一个论坛上获得了如何解决这个问题的帮助。我错过了一个配置选项来选择MongoDB数据库。 Play中的数据库选择选项为db
,但ReactiveMongo使用自己的语法。我必须将其添加到application.conf
:
mongodb.uri="mongodb://localhost/collectionname"
添加该行会导致依赖注入激活。
我也不得不离开:
play.modules.enabled += "play.modules.reactivemongo.ReactiveMongoModule"
两者都是必需的,即使文档中的第二个不。