Постоянство 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.

Пожалуйста, помогите мне, как я могу решить эту проблему, также я новичок в постоянстве Акки и организации событий

0 ответов

Другие вопросы по тегам