2017-05-23 5 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") 
} 

는 그래서, 문제는 ActorSystem입니다,하지만 난 이유를 이해할 수 없다

[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) 

을받을 수 있습니다. 시스템을 삭제하면 myActor 모두 정상적으로 작동합니다. 그것은 단지 val system = ActorSystem을 만들었지 만 시스템이 actorOf을 만들 수없는 경우에도 작동합니다.

+1

akka 의존성에 대한 버전을 제공해 주시겠습니까? –

답변

1

당신은 아마 당신의 application.conf

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

이 현재 시스템에서 실행중인 배우 인스턴스의 수에 대한 주장을 할 akka-actor-tests에서 사용되는 배우의 시스템 확장에서이 설정을 가지고있다.

이것은 응용 프로그램에서 사용할 확장으로 생각하지 않습니다. 테스트 유틸리티와 비슷합니다.

그러나에 따라 당신이 필요 : 당신은 당신의 프로그램을 실행하려면

  1. , 그냥 위의 구성 라인을 삭제하고 당신이 어떤 이유로 확장을 필요로하는 경우 모든
  2. 괜찮을 것 , akka-actor-tests 테스트 jar를 가져 오거나 실행시 this class을 사용할 수 있는지 확인하십시오.
0

문제는 테스트 폴더에서 발생했습니다. 테스트를 제거하면 작동하기 시작합니다.