/ / Pourquoi ne puis-je pas me connecter à un système d'acteur distant? - scala, akka, remoting

Pourquoi ne puis-je pas me connecter à un système d'acteur distant? - scala, akka, remoting

J'essaie deux connecter à différents Akka locaux ActorSystems à distance. J'utilise Scala 2.11.1 et Akka 2.3.3.

Mon application.conf ressemble à ceci:

akka {
loglevel = "DEBUG"
actor {
provider = "akka.remote-RemoteActorRefProvider"
}
remote {
enabled-transports = ["akka.remote.netty.tcp"]
netty.tcp {
hostname = "127.0.0.1"
port = 2552
}
}
}
localConf {
akka.remote.netty.tcp.port = 8448
}
remoteConf {
akka.remote.netty.tcp.port = 4224
}

le Actor est assez simple.

import akka.actor._

class Consumer extends Actor {
def receive = {
case msg: String => println("Received: " + msg)
}
}

Pour le système distant, j'utilise:

import akka.actor._
import com.typesafe.config.ConfigFactory

object RemoteStart extends App {
val config = ConfigFactory.load()
val system = ActorSystem("remoteSystem", config.getConfig("remoteConf").withFalBack(config))
val actor = system.actorOf(Props[Consumer], name = "consumer")
}

Et enfin le code de mon système local:

import akka.actor._
import com.typesafe.config.ConfigFactory

object LocalStart extends App {
val config = ConfigFactory.load()
val system = ActorSystem("loaclSystem", config.getConfig("localConf").withFallBack(config))
val actor = system.actorSelection("akka.tcp://remoteSystem@127.0.0.1:4224/user/consumer")
actor ! "test"
}

Je m'attendrais à ce que ce soit imprimé Received: test. Mais au lieu de cela, je reçois des messages d'erreur. Mais au lieu de cela, je reçois le message d'erreur suivant:

java.lang.NoSuchMethodError: akka.actor.ActorSelectionMessage.wildcardFanOut()Z

Qu'est-ce que je rate?

Réponses:

2 pour la réponse № 1

Vous avez des versions conflictuelles d'Akka sur votre chemin de classe. NoSuchMethodErrors sont presque toujours causés par cela.


0 pour la réponse № 2

Avez-vous ajouté le module akka-remote à votre fichier de construction?

http://doc.akka.io/docs/akka/2.3.4/intro/getting-started.html