title: Compiler errors on a play 2.3 /reactivemongo application
body: <p>i'm writing a Play 2.3.2 application in Scala using reactivemongo driver.
  I've a main application that used an other module.
  Friday my application compiled and executed correctly.
  Now i'm getting some problem, but i didn't change any code.</p>
  
  <p>This is my <code>build.sbt</code> file:</p>
  
  <pre><code>name := "recommendation-system"
  
  version := "1.2-BETA"
  
  scalaVersion := "2.11.1"
  
  resolvers += Resolver.sonatypeRepo("snapshots")
  
  libraryDependencies ++= Seq(
    ws,
    jdbc,
    anorm,
    cache,
    "org.reactivemongo" %% "play2-reactivemongo" % "0.11.0-SNAPSHOT"
  )     
  
  javaOptions in Test += "-Dconfig.file=conf/test.conf"
  
  lazy val root = (project in file(".")).enablePlugins(PlayScala)
  </code></pre>
  
  <p>Here my compiler errors: </p>
  
  <pre><code>[error] bad symbolic reference to reactivemongo.api.collections.GenericHandlers encountered in class file 'JSONGenericHandlers.class'.
  [error] Cannot access type GenericHandlers in package reactivemongo.api.collections. The current classpath may be
  [error] missing a definition for reactivemongo.api.collections.GenericHandlers, or JSONGenericHandlers.class may have been compiled against a version that's
  [error] incompatible with the one found on the current classpath.
  [error] /Users/alberto/git/bdrim/modules/recommendation-system/app/recommendationsystem/models/storage/MongoObj.scala:25: type arguments [play.modules.reactivemongo.json.collection.JSONCollection] do not conform to method collection's type parameter bounds [C &lt;: reactivemongo.api.Collection]
  [error]   def collection: JSONCollection = db.collection[JSONCollection](collectionName)
  [error]                                                 ^
  [error] /Users/alberto/git/bdrim/modules/recommendation-system/app/recommendationsystem/models/storage/MongoObj.scala:29: wrong number of type arguments for reactivemongo.api.collections.GenericQueryBuilder, should be 1
  [error]   case class MyQueryBuilder(gqb: GenericQueryBuilder[JsObject, Reads, Writes]) {
  [error]                                  ^
  [error] /Users/alberto/git/bdrim/modules/recommendation-system/app/recommendationsystem/models/storage/MongoObj.scala:94: type mismatch;
  [error]  found   : reactivemongo.core.commands.GetLastError
  [error]  required: reactivemongo.api.commands.WriteConcern
  [error]     (which expands to)  reactivemongo.api.commands.GetLastError
  [error] Error occurred in an application involving default arguments.
  [error]     if (upsert) collection.update(e, e, GetLastError(), upsert)
  [error]                                                     ^
  [error] /Users/alberto/git/bdrim/modules/recommendation-system/app/recommendationsystem/models/storage/MongoObj.scala:95: could not find implicit value for parameter writer: GenericCollection.this.pack.Writer[T]
  [error] Error occurred in an application involving default arguments.
  [error]     else collection.insert(e)
  [error]                           ^
  [error] /Users/alberto/git/bdrim/modules/recommendation-system/app/recommendationsystem/models/storage/MongoObj.scala:103: type mismatch;
  [error]  found   : reactivemongo.core.commands.GetLastError
  [error]  required: reactivemongo.api.commands.WriteConcern
  [error]     (which expands to)  reactivemongo.api.commands.GetLastError
  [error] Error occurred in an application involving default arguments.
  [error]     collection.update(query, Json.obj("$set" -&gt; e), GetLastError())
  [error]                                                                 ^
  [error] /Users/alberto/git/bdrim/modules/recommendation-system/app/recommendationsystem/models/storage/MongoObj.scala:111: type mismatch;
  [error]  found   : reactivemongo.core.commands.GetLastError
  [error]  required: reactivemongo.api.commands.WriteConcern
  [error]     (which expands to)  reactivemongo.api.commands.GetLastError
  [error] Error occurred in an application involving default arguments.
  [error]     collection.update(query, e, GetLastError(), upsert)
  [error]                                             ^
  [error] /Users/alberto/git/bdrim/modules/recommendation-system/app/recommendationsystem/models/storage/MongoObj.scala:119: type mismatch;
  [error]  found   : reactivemongo.core.commands.GetLastError
  [error]  required: reactivemongo.api.commands.WriteConcern
  [error]     (which expands to)  reactivemongo.api.commands.GetLastError
  [error] Error occurred in an application involving default arguments.
  [error]     collection.update(query, e, GetLastError(), upsert)
  [error]                                             ^
  [error] /Users/alberto/git/bdrim/modules/recommendation-system/app/recommendationsystem/models/storage/MongoObj.scala:127: could not find implicit value for parameter writer: GenericCollection.this.pack.Writer[T]
  [error] Error occurred in an application involving default arguments.
  [error]     collection.remove(e)
  [error]                      ^
  [error] /Users/alberto/git/bdrim/modules/recommendation-system/app/recommendationsystem/models/storage/MongoObj.scala:135: could not find implicit value for parameter swriter: GenericCollection.this.pack.Writer[play.api.libs.json.JsObject]
  [error]     MyQueryBuilder(collection.find(Json.obj()))
  [error]                                   ^
  [error] /Users/alberto/git/bdrim/modules/recommendation-system/app/recommendationsystem/models/storage/MongoObj.scala:142: could not find implicit value for parameter swriter: GenericCollection.this.pack.Writer[play.api.libs.json.JsValue]
  [error]     MyQueryBuilder(collection.find(selector))
  [error]                                   ^
  [error] 11 errors found
  [error] bad symbolic reference to reactivemongo.api.collections.GenericHandlers encountered in class file 'JSONGenericHandlers.class'.
  [error] Cannot access type GenericHandlers in package reactivemongo.api.collections. The current classpath may be
  [error] missing a definition for reactivemongo.api.collections.GenericHandlers, or JSONGenericHandlers.class may have been compiled against a version that's
  [error] incompatible with the one found on the current classpath.
  [error] /Users/alberto/git/bdrim/modules/recommendation-system/app/recommendationsystem/models/storage/MongoObj.scala:25: type arguments [play.modules.reactivemongo.json.collection.JSONCollection] do not conform to method collection's type parameter bounds [C &lt;: reactivemongo.api.Collection]
  [error]   def collection: JSONCollection = db.collection[JSONCollection](collectionName)
  [error]                                                 ^
  [error] /Users/alberto/git/bdrim/modules/recommendation-system/app/recommendationsystem/models/storage/MongoObj.scala:29: wrong number of type arguments for reactivemongo.api.collections.GenericQueryBuilder, should be 1
  [error]   case class MyQueryBuilder(gqb: GenericQueryBuilder[JsObject, Reads, Writes]) {
  [error]                                  ^
  [error] /Users/alberto/git/bdrim/modules/recommendation-system/app/recommendationsystem/models/storage/MongoObj.scala:94: type mismatch;
  [error]  found   : reactivemongo.core.commands.GetLastError
  [error]  required: reactivemongo.api.commands.WriteConcern
  [error]     (which expands to)  reactivemongo.api.commands.GetLastError
  [error] Error occurred in an application involving default arguments.
  [error]     if (upsert) collection.update(e, e, GetLastError(), upsert)
  [error]                                                     ^
  [error] /Users/alberto/git/bdrim/modules/recommendation-system/app/recommendationsystem/models/storage/MongoObj.scala:95: could not find implicit value for parameter writer: GenericCollection.this.pack.Writer[T]
  [error] Error occurred in an application involving default arguments.
  [error]     else collection.insert(e)
  [error]                           ^
  [error] /Users/alberto/git/bdrim/modules/recommendation-system/app/recommendationsystem/models/storage/MongoObj.scala:103: type mismatch;
  [error]  found   : reactivemongo.core.commands.GetLastError
  [error]  required: reactivemongo.api.commands.WriteConcern
  [error]     (which expands to)  reactivemongo.api.commands.GetLastError
  [error] Error occurred in an application involving default arguments.
  [error]     collection.update(query, Json.obj("$set" -&gt; e), GetLastError())
  [error]                                                                 ^
  [error] /Users/alberto/git/bdrim/modules/recommendation-system/app/recommendationsystem/models/storage/MongoObj.scala:111: type mismatch;
  [error]  found   : reactivemongo.core.commands.GetLastError
  [error]  required: reactivemongo.api.commands.WriteConcern
  [error]     (which expands to)  reactivemongo.api.commands.GetLastError
  [error] Error occurred in an application involving default arguments.
  [error]     collection.update(query, e, GetLastError(), upsert)
  [error]                                             ^
  [error] /Users/alberto/git/bdrim/modules/recommendation-system/app/recommendationsystem/models/storage/MongoObj.scala:119: type mismatch;
  [error]  found   : reactivemongo.core.commands.GetLastError
  [error]  required: reactivemongo.api.commands.WriteConcern
  [error]     (which expands to)  reactivemongo.api.commands.GetLastError
  [error] Error occurred in an application involving default arguments.
  [error]     collection.update(query, e, GetLastError(), upsert)
  [error]                                             ^
  [error] /Users/alberto/git/bdrim/modules/recommendation-system/app/recommendationsystem/models/storage/MongoObj.scala:127: could not find implicit value for parameter writer: GenericCollection.this.pack.Writer[T]
  [error] Error occurred in an application involving default arguments.
  [error]     collection.remove(e)
  [error]                      ^
  [error] /Users/alberto/git/bdrim/modules/recommendation-system/app/recommendationsystem/models/storage/MongoObj.scala:135: could not find implicit value for parameter swriter: GenericCollection.this.pack.Writer[play.api.libs.json.JsObject]
  [error]     MyQueryBuilder(collection.find(Json.obj()))
  [error]                                   ^
  [error] /Users/alberto/git/bdrim/modules/recommendation-system/app/recommendationsystem/models/storage/MongoObj.scala:142: could not find implicit value for parameter swriter: GenericCollection.this.pack.Writer[play.api.libs.json.JsValue]
  [error]     MyQueryBuilder(collection.find(selector))
  [error]                                   ^
  [info] No documentation generated with unsuccessful compiler run
  [warn] three warnings found
  [error] 11 errors found
  [error] (compile:doc) Scaladoc generation failed
  [error] (compile:compile) Compilation failed
  [error] Total time: 30 s, completed 13-ott-2014 11.44.28
  make: *** [publish-all] Error 1
  </code></pre>
  
  <p>And here the file on which the compiler gives me the errors: </p>
  
  <pre><code>package recommendationsystem.models.storage
  
  import scala.concurrent.{ ExecutionContext, Future }
  
  // Reactive Mongo imports
  import reactivemongo.api._
  import reactivemongo.api.collections._
  import reactivemongo.core.commands._
  
  // Play Json imports
  import play.modules.reactivemongo._
  import play.modules.reactivemongo.json.collection.JSONCollection
  import play.modules.reactivemongo.ReactiveMongoPlugin
  import play.api.libs.iteratee.Enumerator
  import play.api.libs.json._
  
  import play.api.Play.current
  
  trait MongoObj[T] {
    def collectionName: String
    implicit val ec: ExecutionContext = ExecutionContext.Implicits.global
    /** Switch to implicit lazy val on production */
    implicit def db = ReactiveMongoPlugin.db
    /** Switch to implicit val on production */
    def collection: JSONCollection = db.collection[JSONCollection](collectionName)
    /** storage formatter */
    implicit val storageFormat: Format[T]
  
    case class MyQueryBuilder(gqb: GenericQueryBuilder[JsObject, Reads, Writes]) {
  
      def sort(by: JsObject): MyQueryBuilder = {
        MyQueryBuilder(gqb.sort(by))
      }
  
      /**
       * Skip first s element
       * @param s number of element to skip
       * Implicit T -&gt; JsObject must be in scope
       */
      def skip(s: Int): MyQueryBuilder = {
        MyQueryBuilder(gqb.options(QueryOpts(s)))
      }
  
      /**
       * Take only l element
       * @param l number of element to take
       * Implicit T -&gt; JsObject must be in scope
       */
      def limit(l: Int): MyQueryBuilder = {
        val opt = gqb.options
        MyQueryBuilder(gqb.options(opt.batchSize(l)))
        //collection.find(Json.obj()).sort(sortBy).options(QueryOpts(skip, limit)).cursor[T].collect[List](limit)
      }
  
      /**
       * Return list of all result elements
       * Implicit T -&gt; JsObject must be in scope
       */
      def toList(implicit read: Reads[T]): Future[List[T]] = {
        if (gqb.options.batchSizeN &gt; 0)
          gqb.cursor[T].collect[List](gqb.options.batchSizeN)
        else
          gqb.cursor[T].collect[List](100000)
      }
  
      /**
       * Return an enumerator of all elements
       * Implicit T -&gt; JsObject must be in scope
       */
      def toEnum(implicit read: Reads[T]): Enumerator[T] = {
        gqb.cursor[T].enumerate()
      }
  
      /**
       * skip parameter
       * Implicit T -&gt; JsObject must be in scope
       */
      def one(implicit read: Reads[T]): Future[Option[T]] = {
        gqb.one[T]
      }
  
    }
  
    /**
     * Return number of all documents on collection
     */
    def count: Future[Int] = collection.db.command(Count(collection.name))
  
    /**
     * Insert an element to collection,
     * Implicit T -&gt; JsObject must be in scope
     */
    def save(e: T, upsert: Boolean = false): Future[LastError] = {
      if (upsert) collection.update(e, e, GetLastError(), upsert)
      else collection.insert(e)
    }
  
    /**
     * Update an element to collection with parameter e, the element to update is selected by parameter query
     * Implicit T -&gt; JsObject must be in scope
     */
    def update(query: JsObject, e: JsObject): Future[LastError] = {
      collection.update(query, Json.obj("$set" -&gt; e), GetLastError())
    }
  
    /**
     * Update an element to collection with parameter e, the element to update is selected by parameter query
     * Implicit T -&gt; JsObject must be in scope
     */
    def update(query: T, e: T, upsert: Boolean): Future[LastError] = {
      collection.update(query, e, GetLastError(), upsert)
    }
  
    /**
     * Update an element to collection with parameter e, the element to update is selected by parameter query
     * Implicit T -&gt; JsObject must be in scope
     */
    def update(query: JsObject, e: T, upsert: Boolean = false): Future[LastError] = {
      collection.update(query, e, GetLastError(), upsert)
    }
  
    /**
     * Remove an element from collection,
     * Implicit T -&gt; JsObject must be in scope
     */
    def remove(e: T): Future[LastError] = {
      collection.remove(e)
    }
  
    /**
     * Return all element in collection
     * Implicit T -&gt; JsObject must be in scope
     */
    def all(implicit tformat: Format[T]): MyQueryBuilder =
      MyQueryBuilder(collection.find(Json.obj()))
  
    /**
     * Find elements in collection, sorted by sortBy parameter
     * Implicit T -&gt; JsObject must be in scope
     */
    def find(selector: JsValue)(implicit tformat: Format[T]): MyQueryBuilder = {
      MyQueryBuilder(collection.find(selector))
    }
  
  }
  </code></pre>
  
  <p>After that i've tried to updated my <code>build.sbt</code> file as following:</p>
  
  <pre><code>name := "recommendation-system"
  
  version := "1.2-BETA"
  
  scalaVersion := "2.11.1"
  
  libraryDependencies ++= Seq(
    ws,
    jdbc,
    anorm,
    cache,
    "org.reactivemongo" %% "play2-reactivemongo" % "0.10.5.0.akka23"
  )     
  
  javaOptions in Test += "-Dconfig.file=conf/test.conf"
  
  lazy val root = (project in file(".")).enablePlugins(PlayScala)
  </code></pre>
  
  <p>Now my project compile, but i get the following runtime errors: </p>
  
  <pre><code>[info] play - Listening for HTTP on /0:0:0:0:0:0:0:0:9000
  
  (Server started, use Ctrl+D to stop and go back to the console...)
  
  SLF4J: Class path contains multiple SLF4J bindings.
  SLF4J: Found binding in [jar:file:/Users/alberto/.ivy2/cache/org.slf4j/slf4j-nop/jars/slf4j-nop-1.7.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]
  SLF4J: Found binding in [jar:file:/Users/alberto/.ivy2/cache/org.slf4j/slf4j-jdk14/jars/slf4j-jdk14-1.7.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]
  SLF4J: Found binding in [jar:file:/Users/alberto/.ivy2/cache/org.slf4j/slf4j-simple/jars/slf4j-simple-1.7.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]
  SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
  SLF4J: Actual binding is of type [org.slf4j.helpers.NOPLoggerFactory]
  [info] application - ReactiveMongoPlugin starting...
  [info] application - ReactiveMongoPlugin successfully started with db 'bdrim'! Servers:
          [localhost:27017]
  [info] application - Application has started
  [info] play - Starting application default Akka system.
  Uncaught error from thread [play-akka.actor.default-dispatcher-2] shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[play]
  java.lang.NoClassDefFoundError: reactivemongo/api/collections/GenericHandlers
      at java.lang.ClassLoader.defineClass1(Native Method)
      at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
      at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
      at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
      at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
      at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
      at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
      at java.lang.ClassLoader.defineClass1(Native Method)
      at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
      at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
      at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
      at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
      at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
      at java.net.URLClassLoader$1.run(URLClassLoader.java:355)[ERROR] [10/13/2014 11:23:57.603] [play-akka.actor.default-dispatcher-2] [ActorSystem(play)] Uncaught error from thread [play-akka.actor.default-dispatcher-2] shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled
  java.lang.NoClassDefFoundError: reactivemongo/api/collections/GenericHandlers
      at java.lang.ClassLoader.defineClass1(Native Method)
      at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
      at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
      at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
      at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
      at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
      at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
      at java.lang.ClassLoader.defineClass1(Native Method)
      at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
      at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
      at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
      at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
      at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
      at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
      at play.modules.reactivemongo.json.collection.package$JSONCollectionProducer$.apply(jsoncollection.scala:31)
      at play.modules.reactivemongo.json.collection.package$JSONCollectionProducer$.apply(jsoncollection.scala:30)
      at reactivemongo.api.DB$class.collection(database.scala:64)
      at reactivemongo.api.DefaultDB.collection(database.scala:163)
      at recommendationsystem.models.storage.MongoObj$class.collection(MongoObj.scala:25)
      at recommendationsystem.algorithms.Similarity$.collection(Pearson.scala:52)
      at recommendationsystem.algorithms.Pearson$.mapReduce(Pearson.scala:203)
      at recommendationsystem.algorithms.Pearson$.calculate(Pearson.scala:217)
      at Settings$$anonfun$onStart$1.apply$mcV$sp(Settings.scala:26)
      at akka.actor.Scheduler$$anon$5.run(Scheduler.scala:79)
      at akka.actor.LightArrayRevolverScheduler$$anon$2$$anon$1.run(Scheduler.scala:242)
      at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:41)
      at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393)
      at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
      at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
      at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
      at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(F
  orkJoinWorkerThread.java:107)
  Caused by: java.lang.ClassNotFoundException: reactivemongo.api.collections.GenericHandlers
      at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
      at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
      ... 39 more
  
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
      at play.modules.reactivemongo.json.collection.package$JSONCollectionProducer$.apply(jsoncollection.scala:31)
      at play.modules.reactivemongo.json.collection.package$JSONCollectionProducer$.apply(jsoncollection.scala:30)
      at reactivemongo.api.DB$class.collection(database.scala:64)
      at reactivemongo.api.DefaultDB.collection(database.scala:163)
      at recommendationsystem.models.storage.MongoObj$class.collection(MongoObj.scala:25)
      at recommendationsystem.algorithms.Similarity$.collection(Pearson.scala:52)
      at recommendationsystem.algorithms.Pearson$.mapReduce(Pearson.scala:203)
      at recommendationsystem.algorithms.Pearson$.calculate(Pearson.scala:217)
      at Settings$$anonfun$onStart$1.apply$mcV$sp(Settings.scala:26)
      at akka.actor.Scheduler$$anon$5.run(Scheduler.scala:79)
      at akka.actor.LightArrayRevolverScheduler$$anon$2$$anon$1.run(Scheduler.scala:242)
      at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:41)
      at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393)
      at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
      at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
      at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
      at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
  Caused by: java.lang.ClassNotFoundException: reactivemongo.api.collections.GenericHandlers
      at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
      at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
      ... 39 more
  [error] a.a.ActorSystemImpl - Uncaught error from thread [play-akka.actor.default-dispatcher-2] shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled
  java.lang.NoClassDefFoundError: reactivemongo/api/collections/GenericHandlers
      at java.lang.ClassLoader.defineClass1(Native Method) ~[na:1.7.0_55]
      at java.lang.ClassLoader.defineClass(ClassLoader.java:800) ~[na:1.7.0_55]
      at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[na:1.7.0_55]
      at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) ~[na:1.7.0_55]
      at java.net.URLClassLoader.access$100(URLClassLoader.java:71) ~[na:1.7.0_55]
  Caused by: java.lang.ClassNotFoundException: reactivemongo.api.collections.GenericHandlers
      at java.net.URLClassLoader$1.run(URLClassLoader.java:366) ~[na:1.7.0_55]
      at java.net.URLClassLoader$1.run(URLClassLoader.java:355) ~[na:1.7.0_55]
      at java.security.AccessController.doPrivileged(Native Method) ~[na:1.7.0_55]
      at java.net.URLClassLoader.findClass(URLClassLoader.java:354) ~[na:1.7.0_55]
      at java.lang.ClassLoader.loadClass(ClassLoader.java:425) ~[na:1.7.0_55]
  Uncaught error from thread [[ERROR] [10/13/2014 11:23:57.640] [application-akka.actor.default-dispatcher-2] [ActorSystem(application)] Uncaught error from thread [application-akka.actor.default-dispatcher-2] shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled
  java.lang.AbstractMethodError: org.apache.logging.slf4j.SLF4JLoggerContextFactory.getContext(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/Object;Z)Lorg/apache/logging/log4j/spi/LoggerContext;
      at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:474)
      at reactivemongo.utils.LazyLogger$.apply(utils.scala:55)
      at reactivemongo.core.actors.MongoDBSystem$.&lt;init&gt;(actors.scala:670)
      at reactivemongo.core.actors.MongoDBSystem$.&lt;clinit&gt;(actors.scala)
      at reactivemongo.api.MongoDriver$$anonfun$7.apply(api.scala:511)
      at reactivemongo.api.MongoDriver$$anonfun$7.apply(api.scala:511)
      at akka.actor.TypedCreatorFunctionConsumer.produce(Props.scala:343)
      at akka.actor.Props.newActor(Props.scala:252)
      at akka.actor.ActorCell.newActor(ActorCell.scala:552)
      at akka.actor.ActorCell.create(ActorCell.scala:578)
      at akka.actor.ActorCell.invokeAll$1(ActorCell.scala:456)
      at akka.actor.ActorCell.systemInvoke(ActorCell.scala:478)
      at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:263)
      at akka.dispatch.Mailbox.run(Mailbox.scala:219)
      at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393)
      at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
      at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
      at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
      at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
  
  application-akka.actor.default-dispatcher-2] shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[application]
  java.lang.AbstractMethodError: org.apache.logging.slf4j.SLF4JLoggerContextFactory.getContext(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/Object;Z)Lorg/apache/logging/log4j/spi/LoggerContext;
      at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:474)
      at reactivemongo.utils.LazyLogger$.apply(utils.scala:55)
      at reactivemongo.core.actors.MongoDBSystem$.&lt;init&gt;(actors.scala:670)
      at reactivemongo.core.actors.MongoDBSystem$.&lt;clinit&gt;(actors.scala)
      at reactivemongo.api.MongoDriver$$anonfun$7.apply(api.scala:511)
      at reactivemongo.api.MongoDriver$$anonfun$7.apply(api.scala:511)
  </code></pre>
  
  <p>I think that reactivemongo or akka had been updated recently, without changing the version of the project.</p>
  
  <p>What's wrong??</p>