RemoteActorRefProvider ClassNotFound

Usiłuję uzyskać zdalne ustawienie aktorów w Scali. Używam Scala 2.10.2 i Akka 2.2.1.

Kompiluję używając [Skróciłem ścieżki w argumencie classpath dla jasności]:

$ scalac -classpath "akka-2.2.1/lib:akka-2.2.1/lib/scala-library.jar:akka-2.2.1/lib/akka:akka-2.2.1/lib/akka/scala-reflect-2.10.1.jar:akka-2.2.1/lib/akka/config-1.0.2.jar:akka-2.2.1/lib/akka/akka-remote_2.10-2.2.1.jar:akka-2.2.1/lib/akka/akka-kernel_2.10-2.2.1.jar:akka-2.2.1/lib/akka/akka-actor_2.10-2.2.1.jar:." [file.scala]

Ciągle dodawałem nowe biblioteki próbując to zdebugować - jestem prawie pewien, że wszystko, co naprawdę muszę uwzględnić, to akka-remote, ale pozostałe nie powinny boleć.

Nie trzeba kompilować problemów.

Próbuję uruchomić w ten sposób:

$ scala -classpath "[same as above]" [application]

I otrzymuję wyjątek NSM:

java.lang.NoSuchMethodException: akka.remote.RemoteActorRefProvider.<init>(java.lang.String, akka.actor.ActorSystem$Settings, akka.event.EventStream, akka.actor.Scheduler, akka.actor.DynamicAccess)
at java.lang.Class.getConstructor0(Class.java:2810)
at java.lang.Class.getDeclaredConstructor(Class.java:2053)
...

Patrząc na kod źródłowy, wygląda na to, że smak Akka 2.2.X tego konstruktora przyjmuje 4 argumenty (Scheduler jest usuwany). Ale w Akka <2.2.X konstruktor bierze 5 argumentów.

Dlatego myślę, że moja ścieżka klasy nie jest ustawiona prawidłowo. W czasie kompilacji Scala musi znaleźć smak <2.2.X. Nie wiem nawet, gdzie by to znalazło, ponieważ mam zainstalowaną tylko Akkę 2.2.1.

Jakieś sugestie!? Dzięki! (Nie mów, że używasz SBT).

questionAnswers(2)

yourAnswerToTheQuestion