2017-05-23 71 views
0

我是新的scala和我面臨以下問題。Scala akka演員系統 - RuntimeException當加載擴展

import akka.actor.Actor 
import akka.actor.Props 
import akka.event.Logging 
import akka.actor.ActorSystem 


object test extends App { 

    val system = ActorSystem("hello-world") 
    val myActor = system.actorOf(Props[MyActor], "myactor2") 
} 
class MyActor extends Actor { 
    val log = Logging(context.system, this) 
    val props1 = Props[MyActor] 
    def receive = { 
     case "test" => log.info("received test") 
     case _  => log.info("received unknown message") 
    } 
    val child = context.actorOf(Props[MyActor], name = "myChild") 
} 

所以,當我運行它,我收到

[error] (run-main-1) java.lang.RuntimeException: While trying to load extension [akka.actor.InstanceCountingExtension] 
java.lang.RuntimeException: While trying to load extension [akka.actor.InstanceCountingExtension] 
     at akka.actor.ActorSystemImpl.$anonfun$loadExtensions$1(ActorSystem.scala:906) 
     at scala.collection.Iterator.foreach(Iterator.scala:929) 
     at scala.collection.Iterator.foreach$(Iterator.scala:929) 
     at scala.collection.AbstractIterator.foreach(Iterator.scala:1406) 
     at scala.collection.IterableLike.foreach(IterableLike.scala:71) 
     ... 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:498) 
Caused by: java.lang.ClassNotFoundException: akka.actor.InstanceCountingExtension 
     at java.lang.ClassLoader.findClass(ClassLoader.java:530) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
[trace] Stack trace suppressed: run last compile:run for the full output. 
java.lang.RuntimeException: Nonzero exit code: 1 
     at scala.sys.package$.error(package.scala:27) 

的問題是ActorSystem,但我不明白爲什麼。當我刪除系統myActor一切工作正常。它甚至適用於我只有val system = ActorSystem但系統無法創建actorOf

+1

你可以給我們你的阿卡附屬的版本嗎? –

回答

1

你可能在你application.conf

akka.library-extensions += "akka.actor.InstanceCountingExtension" 

這是使用akka-actor-tests作出關於當前系統中運行的演員實例的數量斷言演員系統擴展此設置。

我不認爲這是作爲應用程序使用的擴展,它更像是一個測試工具。

但是,根據你的需要:

  1. ,如果你只是想運行您的程序,只是刪除配置線之上,如果你需要擴展出於某種原因都應該被罰款
  2. ,進口akka-actor-tests測試罐,或者確保你在運行時有this class
0

問題出在測試文件夾。當我刪除測試它開始工作。