Akka: defining an actor in Scala with non-default constructor and creating it from Java code -
an akka scala actor must extend akka.actor.actor
an akka java actor must extend akka.actor.untypedactor
therefore, when defining scala actor non-default constructor , creating java code, run problem:
actorref myactor = system.actorof(new props(new untypedactorfactory() { public untypedactor create() { return new myactor("..."); } }), "myactor");
of course, untypedactorfactory expecting create object of type untypedactor, actor of type actor.
what's workaround ?
edit:
following instructions viktor use akka.japi.creator, works:
props props1 = new props(); props props2 = props1.withcreator(new akka.japi.creator() { public actor create() { return new myactor("..."); } }); actorref actorref = main.appclient().actorof(props2, "myactor");
pass in akka.japi.creator instead of untypedactorfactory in case.
also, @ least in 2.0.1 , forward doesn't require untypedactor:
trait untypedactorfactory extends creator[actor] serializable
Comments
Post a Comment