我正在使用不同的 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/