1
votes

I'm playing with different akka-persistence plugins to compare the available options. Now I can successfully run with in-memory & leveldb plugins but faced some runtime exception with cassandra plugin.

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"
  }
  ...
}

My dependencies:

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'
}

Do I need to perform some additional actions to make it run?

The 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
1
Which Akka version do you use? - Branislav Lazic
@BranislavLazic 2.5.3 - Silk0vsky

1 Answers

0
votes

Seems I found the source of failure: I googled some invalid dependency for akka-persistence-cassandra.

Now I can successfully run with: 'com.typesafe.akka:akka-persistence-cassandra_2.11:0.54'