seguo svolge lungo descrizione come utilizzare gli attori: https://www.playframework.com/documentation/2.4.x/ScalaAkka essi suggeriscono qualcosa come:Utilizzare attori in gioco
@Singleton
class Application @Inject() (system: ActorSystem) extends Controller {
val helloActor = system.actorOf(HelloActor.props, "hello-actor")
//...
}
Ma questo si traduce in:
play.sbt.PlayExceptions$CompilationException: Compilation error[trait Singleton is abstract; cannot be instantiated]
at play.sbt.PlayExceptions$CompilationException$.apply(PlayExceptions.scala:27) ~[na:na]
at play.sbt.PlayExceptions$CompilationException$.apply(PlayExceptions.scala:27) ~[na:na]
at scala.Option.map(Option.scala:145) ~[scala-library-2.11.6.jar:na]
at play.sbt.run.PlayReload$$anonfun$taskFailureHandler$1.apply(PlayReload.scala:49) ~[na:na]
at play.sbt.run.PlayReload$$anonfun$taskFailureHandler$1.apply(PlayReload.scala:44) ~[na:na]
at scala.Option.map(Option.scala:145) ~[scala-library-2.11.6.jar:na]
at play.sbt.run.PlayReload$.taskFailureHandler(PlayReload.scala:44) ~[na:na]
at play.sbt.run.PlayReload$.compileFailure(PlayReload.scala:40) ~[na:na]
at play.sbt.run.PlayReload$$anonfun$compile$1.apply(PlayReload.scala:17) ~[na:na]
at play.sbt.run.PlayReload$$anonfun$compile$1.apply(PlayReload.scala:17) ~[na:na]
Tos vedere quello che ho fatto o seguire insieme : https://github.com/dataplayground/playground
edit:
Rimozione del @Singleton
porta a:
could not find implicit value for parameter timeout: akka.util.Timeout
Questo è il codice:
implicit val timeout = 5.seconds
def sayHello(name: String) = Action.async {
(helloActor ? SayHello(name)).mapTo[String].map { message =>
Ok(message)
}
}
remove '@ Singleton' – 757071
ok - lo è anche la documentazione é piú attuale? almeno questo errore va via. Tuttavia sembra esserci ancora qualcosa di sbagliato nell'esempio. Vedi edit –
'implicit val timeout = akka.util.TimeOut (5.seconds)' – 757071