我使用在Heroku上运行的ReactiveMongo对一个MongoLab 2.6数据库有一个非常好用的Scala Play 2.3应用程序,现在MongoLab已经将他们的沙箱数据库更新到3.0我无法启动我的应用程序 .
我已将本地数据库更新为3.0 .
我按照http://reactivemongo.org/releases/0.11/documentation/tutorial/play2.html上的说明进行了操作2.3,但我仍然得到如下堆栈跟踪:
---(从SBT运行应用程序,启用自动重新加载)--- [info] play - 在/ 0上侦听HTTP:0:0:0:0:0:0:0:9000(服务器启动) ,使用Ctrl D停止并返回控制台...)[info]应用程序 - ReactiveMongoPlugin启动... [info]应用程序 - ReactiveMongoPlugin成功启动db'sites'!服务器:[localhost:27017] [info] play - 应用程序启动(Dev)[ERROR] [2015年2月2日11:34:11.472] [play-akka.actor.default-dispatcher-7] [ActorSystem(play) ]来自线程[play-akka.actor.default-dispatcher-7]的未捕获错误,因为'akka.jvm-exit-on-fatal-error'已启用java.lang.AbstractMethodError at akka.actor.ActorCell.receiveMessage (ActorCell.scala:516)at akka.dispatch.Mailbox.AailCell.invoke(ActorCell.scala:487)at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238)at akka.dispatch.Mailbox.run(Mailbox.scala: 220)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)scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)[ERROR] [10/02/2015 11: 34:11.473] [play-akka .actor.default-dispatcher-8] [ActorSystem(play)]来自线程[play-akka.actor.default-dispatcher-8]的未捕获错误因为'akka.jvm-exit-on-fatal-error'而关闭JVM enabled java.lang.AbstractMethodError来自线程[play-akka.actor.default-dispatcher-7]的未捕获错误,因为为ActorSystem [play] java.lang启用了'akka.jvm-exit-on-fatal-error',因此关闭了JVM .abstractMethodError at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)at akka.actor.ActorCell.invoke(ActorCell.scala:487)at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238)at akka . dispatch.Mailbox.run(Mailbox.scala:220)at akka.dispatch.ForkJoinExecutorConfigurator $ AkkaForkJoinTask.exec(AbstractDispatcher.scala:393)at akka.actor scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) .ActorCell.create(ActorCell.scala:580)at scala.concurrent.forkjoin.ForkJoinPool $ WorkQueue.runTask(ForkJoinPool.java:1339)at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)at s cala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)at akka.actor.ActorCell.invokeAll $ 1(ActorCell.scala:456)at akka.actor.ActorCell.systemInvoke(ActorCell.scala:478)
我已将我的引用从... default.BSONCollection更新为... bson.BSONCollection等 .
我正在使用以下配置:
mongodb.uri = "mongodb://localhost:27017/sites"
mongo-async-driver {
akka {
loglevel = WARNING
}
}
我的app依赖是:
"org.reactivemongo" %% "play2-reactivemongo" % "0.11.7.play23")
有人可以建议上面的堆栈跟踪实际意味着什么,因为我无法弄明白吗?
1 回答
不完全确定你的堆栈跟踪中发生了什么,但看起来设置
akka.jvm-exit-on-fatal-error
只是导致你的应用程序崩溃而不是输出导致崩溃的原因阅读文档,您可以通过执行以下操作来禁用它:
在你的akka配置中 . 然后你可能会得到一些更详细的堆栈跟踪
http://doc.akka.io/docs/akka/snapshot/general/configuration.html
然而,在MongoLab上进行Mongo 3.0升级后,我也遇到了致命的错误 . 我的错误是这样的:
由3.0引起使用不同的身份验证然后2.6
为了解决我改变我的MongoURI以包括这样的authMode: