Pourquoi quand je sélectionne un chemin absolu avec ActorContext, il ne fonctionne pas (l'acteur n'est pas correctement sélectionné et ne reçoit pas le message HellOreSponse)? Je suis NEWBIE à Scala / Akka mais Documentation de lecture semble cela devrait fonctionner. P> p>
3 Réponses :
Lorsque vous utilisez Un petit code Pour montrer ce que je veux dire: p> Lorsque vous exécutez cet exemple, vous verrez: p> afin que vous puissiez voir que j'ai 2 instances de Le système Acteur est hiérarchique et cet exemple montre que. Le context.actorselection code> à l'intérieur d'un acteur, ce que vous dites est de trouver un acteur sous ce contrôle actuel des acteurs (démarré par / supervisé par). Étant donné que Acteur1 n'était probablement pas démarré par Actor2 (ou n'est pas supervisé par Acteur2), alors cela ne résoudra rien. Si Acteur1 était apparu / démarré par Actor2, vous pouvez probablement faire
context.actorselection ("/ acteur1") code> pour obtenir cet enfant acteur d'Acteur2. La raison
context.system.actorselection code> est parce que vous allez tout le chemin sur
système code> avant de commencer votre recherche et de qualifier complètement le chemin de l'acteur. Système "possède" acteur1 si vous avez commencé comme
system.actorof code>, il vous permettra d'utiliser ce chemin vous permettra d'y parvenir de
système code>.
acteur2 code> en cours d'exécution dans mon système; un engagé directement à partir de
SYS code> lié à
/ utilisateur / acteur2 code> en tant que chemin de recherche et on a démarré à partir d'une instance de
acteur1 code> liée à
/ utilisateur / acteur1 / acteur2 code> pour son chemin. p>
actorsystem code> est la racine de tout. La sélection des acteurs est ensuite similaire à XPath en ce que le contexte que vous émettez le choix des choses. P> p>
à partir de acteur2 code> Vous devrez utiliser
context.actorFor("/user/actor1")
Le premier extrait: context.actorselection ("/ acteur1") ne fonctionnera pas non plus. Si la barre oblique existe, Actorsélections résolvez-vous à partir du tuteur racine comme Roland mentionne.
Cela fonctionnait mais était un bug et a depuis été corrigé.
Il suffit de tester avec AKKA 2.3-M2 et context.actorsélections ("/ acteur1") ne fonctionne pas. L'Actorsélection commencera à résoudre le tuteur racine.
Il a été fixé en 2.1.4
Ceci est un bug, merci de demander: https://www.assembla.com / espaces / ddevgvakr3qrueje5avnr / billets / 3276 p>
Veuillez fournir les éléments suivants: 1) Code SCALA / AKKA 2) Code indique comment
acteur1 code> est créé 3) Qu'entendez-vous par "ne fonctionne pas"? Compile-t-il? Est-ce que cela jette une exception au moment de l'exécution? Ne
acteur1 code> reçoit pas le
helloresponse ("Hello Back1") code> message? Que dit le message d'erreur?
J'ai ajouté une explication sur ce qui ne fonctionne pas, merci pour l'intérêt.