I'm struggling to set up remote members in Scala. I am running Scala 2.10.2 and Akka 2.2.1.
I will compile using [I have shortened paths in the pathpath for transparency]:
$ 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]
I constantly added new libraries, trying to debug this - I am sure that all I really need to enable is akka-remote, but others should not hurt.
No compilation of problems.
I am trying to run as follows:
$ scala -classpath "[same as above]" [application]
And I get the NSM exception:
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)
...
Looking into the source code, it seems that the flavor of Akka 2.2.X of this constructor takes 4 arguments (Scheduler removed). But in Akka <2.2.X, the constructor takes 5 arguments.
, , classpath . Scala < 2.2.X. , , Akka 2.2.1.
!? ! (, , SBT).