主管策略:编译错误 - 恢复/重启/停止/升级与指令不兼容

时间:2014-08-24 22:53:07

标签: java compiler-errors akka

这是我第一次尝试akka - 而且我很困难。 我发现了一些tutorial code on the official akka website设置了一个主管策略,但我不断收到以下4个编译错误:

  

不兼容的类型。

     

必需:akka.actor.SupervisorStrategy.Directive

     

找到:akka.actor.SupervisorStrategy.Resume< - 同样适用于重启,停止,升级

我的直觉告诉我,我得到了一些非常基本的错误,下面是我使用的图书馆,以及最小的失败示例。

干杯,Seb

libraries:scala-library:2.11.2,akka-actor_2.11:2.3.5,jdk 1.7.0_45

import akka.actor.OneForOneStrategy;
import akka.actor.SupervisorStrategy;
import akka.actor.UntypedActor;
import akka.japi.Function;
import scala.concurrent.duration.Duration;

import static akka.actor.SupervisorStrategy.*;

class MyWorker extends UntypedActor {

    private static SupervisorStrategy supervisorStrategy =
            new OneForOneStrategy(10, Duration.create("1 minute"),
                    new Function<Throwable, Directive>() {
                        @Override
                        public Directive apply(Throwable t) {
                            if (t instanceof ArithmeticException) {
                                return SupervisorStrategy.resume();
                            } else if (t instanceof NullPointerException) {
                                return restart();
                            } else if (t instanceof IllegalArgumentException) {
                                return stop();
                            } else {
                                return escalate();
                            }
                        }
                    });


    @Override
    public void onReceive(Object message) throws Exception {
    }
}

1 个答案:

答案 0 :(得分:0)

解决。这是两个问题:

a)事实证明,IntelliJ IDEA 12似乎与Scala有问题。版本13.1就像一个开箱即用的魅力。

b)maven在我明确静态导入后停止抱怨缺少SupervisorStrategy $ 1.class(例如import static akka.actor.SupervisorStrategy.resume)。