Постоянство akka с использованием Mongodb Casbah Based Journal ошибка java.lang.NoSuchMethodError:
Я пытаюсь использовать журнал MongoDB Casbah для сохранения событий в mongoDb, и я следую этому и этому руководству, чтобы настроить и получить помощь из примера кода, вот мой код
import akka.actor._
import akka.persistence._
case class Cmd(data: String)
case class Evt(data: String)
case class ExampleState(events: List[String] = Nil) {
def updated(evt: Evt): ExampleState = copy(evt.data :: events)
def size: Int = events.length
override def toString: String = events.reverse.toString
}
class ExamplePersistentActor extends PersistentActor {
override def persistenceId = "sample-id-1"
var state = ExampleState()
def updateState(event: Evt): Unit =
state = state.updated(event)
def numEvents =
state.size
val receiveRecover: Receive = {
case evt: Evt => updateState(evt)
case SnapshotOffer(_, snapshot: ExampleState) => state = snapshot
}
val receiveCommand: Receive = {
case Cmd(data) =>
persist(Evt(s"${data}-${numEvents}"))(updateState)
persist(Evt(s"${data}-${numEvents + 1}")) { event =>
updateState(event)
context.system.eventStream.publish(event)
}
case "snap" => saveSnapshot(state)
case "print" => println(state)
}
}
import com.mongodb.casbah.Imports._
import org.eligosource.eventsourced.core._
import org.eligosource.eventsourced.journal.mongodb.casbah.MongodbCasbahJournalProps
object PersistentActorExample extends App{
implicit val system = ActorSystem("example")
// create and start the Casbah based mongoDB journal
val journal: ActorRef = MongodbCasbahJournalProps(MongoClient(), "eventsourced", "event").createJournal
// create an event-sourcing extension that uses the Casbah based mongoDB journal
val extension = EventsourcingExtension(system, journal)
val persistentActor = system.actorOf(Props[ExamplePersistentActor], "persistentActor-4-scala")
persistentActor ! Cmd("foo")
persistentActor ! Cmd("baz")
persistentActor ! Cmd("bar")
persistentActor ! "snap"
persistentActor ! Cmd("buzz")
persistentActor ! "print"
Thread.sleep(1000)
system.shutdown()
}
я использую sbt 0.13.0 и версия scala 2.11.1 Akka-2.3.5 я понизил версию scala до 2.10.2 в моем файле sbt, потому что эти две библиотеки не работают
libraryDependencies += "org.eligosource" %% "eventsourced-core" % "0.6.0"
libraryDependencies += "org.eligosource" %% "eventsourced-journal-mongodb-casbah" % "0.6.0"
со scala 2.11.1 вот мой файл build.sbt
name := "akkaexamples"
version :="1.0"
scalaVersion :="2.10.2"
libraryDependencies ++=Seq(
"com.typesafe.akka" %% "akka-actor" % "2.3.5",
"ch.qos.logback" % "logback-classic" % "1.1.3",
"com.typesafe.akka" %% "akka-slf4j" % "2.3.9",
"org.slf4j" % "slf4j-api" % "1.7.12",
"ch.qos.logback" % "logback-core" % "1.1.3",
"com.typesafe.akka" %% "akka-persistence-experimental" % "2.3.10",
"org.mongodb" %% "casbah" % "2.8.0"
)
resolvers += "Eligosource Releases" at "http://repo.eligotech.com/nexus/content/repositories/eligosource-releases"
libraryDependencies += "org.eligosource" %% "eventsourced-core" % "0.6.0"
libraryDependencies += "org.eligosource" %% "eventsourced-journal-mongodb-casbah" % "0.6.0"
когда запустить это в sbt следующее исключение
[info] Running AkkaPersistence.PersistentActorExample
19:12:03.844 [run-main-0] DEBUG c.m.c.c.c.s.RegisterConversionHelpers$ - Registering Scala Conversions.
19:12:03.861 [run-main-0] DEBUG c.m.c.c.c.s.RegisterConversionHelpers$ - Deserializers for Scala Conversions registering
19:12:03.861 [run-main-0] DEBUG c.m.c.c.c.s.RegisterConversionHelpers$ - Serializers for Scala Conversions registering
19:12:03.861 [run-main-0] DEBUG c.m.c.c.c.s.RegisterConversionHelpers$ - Setting up OptionSerializer
19:12:03.863 [run-main-0] DEBUG c.m.c.c.c.s.RegisterConversionHelpers$ - Setting up ScalaProductSerializer
19:12:03.863 [run-main-0] DEBUG c.m.c.c.c.s.RegisterConversionHelpers$ - Setting up ScalaCollectionSerializer
19:12:03.864 [run-main-0] DEBUG c.m.c.c.c.s.RegisterConversionHelpers$ - Setting up ScalaRegexSerializers
19:12:03.864 [run-main-0] DEBUG c.m.c.c.c.s.RegisterConversionHelpers$ - Hooking up scala.util.matching.Regex serializer
19:12:03.865 [run-main-0] DEBUG c.m.c.c.c.s.RegisterConversionHelpers$ - Reached base registration method on MongoConversionHelper.
[error] (run-main-0) java.lang.NoSuchMethodError: akka.actor.Props$.apply(Lscala/Function0;)Lakka/actor/Props;
java.lang.NoSuchMethodError: akka.actor.Props$.apply(Lscala/Function0;)Lakka/actor/Props;
at org.eligosource.eventsourced.core.package$.actor(package.scala:32)
at org.eligosource.eventsourced.journal.common.JournalProps$class.createJournal(JournalProps.scala:40)
at org.eligosource.eventsourced.journal.mongodb.casbah.MongodbCasbahJournalProps.createJournal(MongodbCasbahJournalProps.scala:53)
at AkkaPersistence.PersistentActorExample$delayedInit$body.apply(PersistentActorExample.scala:52)
at scala.Function0$class.apply$mcV$sp(Function0.scala:40)
at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
at scala.App$$anonfun$main$1.apply(App.scala:71)
at scala.App$$anonfun$main$1.apply(App.scala:71)
at scala.collection.immutable.List.foreach(List.scala:318)
at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:32)
at scala.App$class.main(App.scala:71)
at AkkaPersistence.PersistentActorExample$.main(PersistentActorExample.scala:49)
at AkkaPersistence.PersistentActorExample.main(PersistentActorExample.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
[trace] Stack trace suppressed: run last compile:run for the full output.
Пожалуйста, помогите мне, как я могу решить эту проблему, также я новичок в постоянстве Акки и организации событий