DI経由で2つのアクタをPlayコントローラに注入したいとします。 1人の俳優を注入することは、まったく問題なく動作し、問題なくこの俳優にメッセージを送ることができます。第二の俳優を注入して、メッセージを送信するときしかし、私は、次のコンパイルエラーが表示されます。2つのアクタをPlayコントローラに注入するときに「あいまいな暗黙の値」
play.sbt.PlayExceptions$CompilationException: Compilation error[ambiguous implicit values:
both value fooSupervisor in class MyController of type akka.actor.ActorRef
and value barSupervisor in class MyController of type akka.actor.ActorRef
match expected type akka.actor.ActorRef]
私のコントローラは、次のようになります。
class MyController @Inject()(
implicit system: ActorSystem,
materializer: Materializer,
@Named("FooSupervisor") fooSupervisor: ActorRef,
@Named("BarSupervisor") barSupervisor: ActorRef
) extends Controller {
}
、次のようにモジュールが見えます:
class Module extends AbstractModule with ScalaModule with AkkaGuiceSupport {
def configure() {
// ....
bindActor[FooSupervisor]("FooSupervisor")
bindActor[BarSupervisor]("BarSupervisor")
()
}
}
どうすればこの問題を解決できますか?
fyi - guice 4.1.0を使用して上記のコードをテストしました。 – Prashanth