在Akka中初始化演员,播放2.4.2

时间:2015-07-14 23:24:30

标签: java playframework-2.0 akka

我的应用程序组件Processor.java可以侦听来自外部源的事件。我想使用actor将这些事件传递给套接字。我有一类处理这些事件的演员:

public class EventProcessor extends UntypedActor {

    static ActorRef channel = Akka.system().actorOf(Props.create(EventProcessor.class));

    public void onReceive(Object message) throws Exception {
        // do stuff here
    }

    public void handleMessage(String event) {
         // tell another actor to do stuff here
    }
}

我希望能够在EventProcessor中实例化Process.java类型的演员。现在,我有这个:

ActorRef act = Akka.system().actorOf(new Props(EventProcessor.class), null);
act.handleMessage(str);

我收到编译错误:

constructor Props in class akka.actor.Props cannot be applied to given types;
  required: akka.actor.Deploy,java.lang.Class<?>,scala.collection.immutable.Seq<java.lang.Object>
  found: java.lang.Class<models.EventProcessor>
  reason: actual and formal argument lists differ in length

在我的情况下,在Akka中实例化演员的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

new Props(YourActor.class)替换为Props.create(Actor.class)。  我有相同的编译错误,它对我有用。 见http://doc.akka.io/api/akka/2.3.1/akka/actor/Props.html

final Props props = Props.create(MyActor.class, arg1, arg2);