关于在Akka.system.actorFor中起作用的context.actorSelection中的“not found:value context”

时间:2014-03-02 11:29:31

标签: playframework-2.0 akka

使用playframwork 2.2.2(scala)。 (升级后来自2.1我认为。)

在一个对象中,我有以下代码行(编译):

val q = Akka.system.actorFor( "akka://application/user/q" )

在此新版本中已弃用。我发现this Akka migration guide并将行更改为(不再编译):

val q = context.actorSelection( "/application/user/q" )

但现在我遇到了这个错误:

not found: value context 

我不知道该怎么做。谷歌没有帮助。我对执行上下文有一些基本的了解,并认为问题在于implicit范围内没有。提示,提示,推动,指示,解决方案欢迎。

1 个答案:

答案 0 :(得分:3)

ActorSystem仍然是ActorRefFactory的一个实例,而这又定义了actorSelection自播放提供Akka.system is an instance of ActorSystem以来,您应该可以直接致电:

Akka.system.actorSelection( "/application/user/q")

<强>代替。

在Akka中,context值可在Actor中获得 - 它是ActorContext的实例。反过来,这也是ActorRefFactory的子类,这就是提供actorSelection的原因。

但这与你的情况无关:在Akka 2.2中,你仍然应该使用ActorSystem实例进行“全局”选择和其他操作。