java - Akka 持久化 cassandra 插件在启动时抛出 NoSuchMethodError

标签 java scala akka akka-persistence

我正在使用不同的 akka-persistence 插件来比较可用的选项。 现在我可以成功使用内存和 leveldb 插件运行,但使用 cassandra 插件时遇到一些运行时异常。

akka {
  persistence {
    # predefined inmemory plugin
    # journal.plugin = "akka.persistence.journal.inmem"
    # snapshot-store.plugin = "akka.persistence.snapshot-store.local"

    # cassandra plugin
    journal.plugin = "cassandra-journal"
    snapshot-store.plugin = "cassandra-snapshot-store"
  }
  ...
}

我的依赖项:

dependencies {
    compile "com.typesafe.akka:akka-persistence_2.11:$akkaVersion"
    compile "com.typesafe.akka:akka-remote_2.11:$akkaVersion"
    compile 'com.github.romix.akka:akka-kryo-serialization_2.11:0.5.0'
    compile 'com.typesafe.akka:akka-persistence-cassandra:0.7'
}

我需要执行一些额外的操作才能使其运行吗?

异常(exception):

[ERROR] [07/05/2017 19:08:58.591] [sender-system-akka.actor.default-dispatcher-12] [akka://sender-system/system/cassandra-journal] akka.stream.ActorMaterializer$.apply$default$3()Lakka/stream/Optimizations;
akka.actor.ActorInitializationException: akka://sender-system/system/cassandra-journal: exception during creation
    at akka.actor.ActorInitializationException$.apply(Actor.scala:191)
    at akka.actor.ActorCell.create(ActorCell.scala:608)
    at akka.actor.ActorCell.invokeAll$1(ActorCell.scala:462)
    at akka.actor.ActorCell.systemInvoke(ActorCell.scala:484)
    at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:282)
    at akka.dispatch.Mailbox.run(Mailbox.scala:223)
    at akka.dispatch.Mailbox.exec(Mailbox.scala:234)
    at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
    at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
    at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
    at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at akka.util.Reflect$.instantiate(Reflect.scala:65)
    at akka.actor.ArgsReflectConstructor.produce(IndirectActorProducer.scala:96)
    at akka.actor.Props.newActor(Props.scala:213)
    at akka.actor.ActorCell.newActor(ActorCell.scala:563)
    at akka.actor.ActorCell.create(ActorCell.scala:589)
    ... 9 more
Caused by: java.lang.NoSuchMethodError: akka.stream.ActorMaterializer$.apply$default$3()Lakka/stream/Optimizations;
    at akka.stream.scaladsl.ImplicitMaterializer$class.$init$(ImplicitMaterializer.scala:25)
    at akka.persistence.cassandra.journal.CassandraJournal.<init>(CassandraJournal.scala:31)
    ... 18 more

最佳答案

似乎我找到了失败的根源:我在谷歌上搜索了 akka-persistence-cassandra 的一些无效依赖项。

现在我可以成功运行:'com.typesafe.akka:akka-persistence-cassandra_2.11:0.54'

关于java - Akka 持久化 cassandra 插件在启动时抛出 NoSuchMethodError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44931483/

相关文章:

java - 如果使用用户和所有者密码加密,如何使用用户密码在java中解密128位RC4 pdf文件

scala - 为什么 scala.util.Success.apply 不是无限递归的?

scala - 如何创建不受背压影响的 Source

java - JMS 队列和主题命名约定的建议

java - 为什么 hashCode 比类似方法慢?

javascript - JavaScript 中匿名函数的占位符

json - Spray 客户端将自定义案例类编码为 JSON

scala - Scala 中的并行文件处理

java - 检查字符串是否完全显示在弹出窗口中

scala - 在 Scala 中,我将如何以无状态、功能性的方式为银行账户建模?