Play2项目中的Akka(持久邮箱)配置

时间:2013-09-26 17:51:45

标签: playframework-2.0 akka typesafe-stack

我正在尝试配置一些akka actor,以便在play2应用程序的上下文中拥有一个持久的邮箱。

正在读取application.conf中的配置,因为MongoBasedMailboxType正在实例化。

event-dispatcher {   mailbox-type = akka.actor.mailbox.MongoBasedMailboxType }

但是我遇到了这个例外。

java.lang.NoSuchMethodError: scala.Predef$.augmentString(Ljava/lang/String;)Lscala/collection/immutable/StringOps;
    at akka.util.Duration$.<init>(Duration.scala:76)
    at akka.util.Duration$.<clinit>(Duration.scala)
    at akka.actor.mailbox.MongoBasedMailboxSettings.<init>(MongoBasedMailboxSettings.scala:21)
    at akka.actor.mailbox.MongoBasedMailboxType.<init>(MongoBasedMailbox.scala:26)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)

我认为原因是以下配置无法识别。

akka {
  actor {
    mailbox {
      mongodb {

        uri = "mongodb://localhost/akka.mailbox"
        timeout {
          # time to wait for a read to succeed before timing out the future
          read = 3000 ms
          # time to wait for a write to succeed before timing out the future
          write = 3000 ms
        }
      }
    }
  }
}

我也尝试将akka {... }包裹在play {}但没有运气。

  • scalaVersion:=“2.10.1”
  • “com.typesafe.akka”%“akka-mongo-mailbox”%“2.0.5”
  • addSbtPlugin(“play”%“sbt-plugin”%“2.1.5”)

2 个答案:

答案 0 :(得分:1)

Akka-mongo-mailbox 2.0.5依赖于akka-mailboxes-common 2.0.5,这取决于akka 2.0.5,但是玩2.1.5你有akka 2.1所以你得到api不匹配。不知道怎么办呢,请问akka邮件列表可能吗?

答案 1 :(得分:0)

问题已在邮件列表中得到解答:

  

“”“不知道任何实施持久性的开源项目   akka的邮箱2.1 for mongo或redis。

     

如果你想实现自己的,2.0.5的源代码   版本可在此处获得   https://github.com/akka/akka/tree/v2.0.5/akka-durable-mailboxes“”“

https://groups.google.com/forum/#!topic/akka-user/50c2HZa1OFU