Обновите приложение ReactiveMongo Play 2.3 с 2.6 до 3.0

У меня было отлично работающее приложение Scala Play 2.3, использующее ReactiveMongo, работающее на Heroku с базой данных MongoLab 2.6, теперь, когда MongoLab обновила свои базы данных песочницы до 3.0, я не могу запустить свое приложение.

Я обновил свою локальную базу данных до версии 3.0.

Я выполнил инструкции на http://reactivemongo.org/releases/0.11/documentation/tutorial/play2.html для 2.3, но я все равно получаю трассировку стека следующим образом:

--- (Запуск приложения из SBT, автоперезагрузка включена) ---

[info] play - Прослушивание HTTP на / 0: 0: 0: 0: 0: 0: 0: 0: 9000

(Сервер запущен, используйте Ctrl + D, чтобы остановиться и вернуться в консоль ...)

[info] application - ReactiveMongoPlugin запускается ... [info] application - ReactiveMongoPlugin успешно запущен с db 'sites'! Серверы: [localhost: 27017] [info] play - Приложение запущено (Dev) [ERROR] [10/02/2015 11: 34: 11.472] [play-akka.actor.default-dispatcher-7] [ActorSystem (play) ] Неперехваченная ошибка из потока [play-akka.actor.default-dispatcher-7] завершение работы JVM, поскольку 'akka.jvm-exit-on-fatal-error' включен java.lang.AbstractMethodError at akka.actor.ActorCell.receiveMessage (ActorCell.scala: 516) в akka.actor.ActorCell.invoke (ActorCell.scala: 487) в akka.dispatch.Mailbox.processMailbox (Mailbox.scala: 238) в akka.dispatch.Mailbox.run (Mailbox.scala: 220) в akka.dispatch.ForkJoinExecutorConfigurator $ AkkaForkJoinTask.exec (AbstractDispatcher.scala: 393) в scala.concurrent.forkjoin.ForkJoinTask.doExec (ForkJoinTask.java:260) в scala.java: .java: 1339) на scala.concurrent.forkjoin.ForkJoinPool.runWorker (ForkJoinPool.java:1979) на scala.conc urrent.forkjoin.ForkJoinWorkerThread.run (ForkJoinWorkerThread.java:107)

[ОШИБКА] [10.02.2015 11: 34: 11.473] [play-akka.actor.default-dispatcher-8] [ActorSystem (play)] Неперехваченная ошибка из потока [play-akka.actor.default-dispatcher-8 ] завершение работы JVM после включения 'akka.jvm-exit-on-fatal-error' java.lang.AbstractMethodError Неперехваченная ошибка из потока [play-akka.actor.default-dispatcher-7] завершение работы JVM, поскольку 'akka.jvm -exit-on-fatal-error 'включен для ActorSystem [play] java.lang.AbstractMethodError в akka.actor.ActorCell.receiveMessage (ActorCell.scala: 516) в akka.actor.ActorCell.invoke (ActorCell.scala: 487 ) в akka.dispatch.Mailbox.processMailbox (Mailbox.scala: 238) в akka.dispatch.Mailbox.run (Mailbox.scala: 220) в akka.dispatch.ForkJoinExecutorConfigurator $ AkkaForkJoinTask.exec (AbstractDispatcher) atscala: 39 .concurrent.forkjoin.ForkJoinTask.doExec (ForkJoinTask.java:260) в akka.actor.ActorCell.create (ActorCell.scala: 580) в scala.concurrent.forkjo в. .actor.ActorCell.invokeAll $ 1 (ActorCell.scala: 456) в akka.actor.ActorCell.systemInvoke (ActorCell.scala: 478)

Я обновил свои ссылки с ... default.BSONCollection на ... bson.BSONCollection и т. Д.

Я использую следующую конфигурацию:

mongodb.uri = "mongodb://localhost:27017/sites" 

mongo-async-driver {   

  akka {

    loglevel = WARNING   

  } 

}

Моя зависимость от приложения:

"org.reactivemongo" %% "play2-reactivemongo" % "0.11.7.play23")

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


person Mark    schedule 02.10.2015    source источник
comment
Возникла аналогичная проблема, не удается заставить мое игровое приложение пройти аутентификацию на mongolab. Продолжайте получать ошибки авторизации.   -  person Darcys22    schedule 02.10.2015


Ответы (1)


Не совсем уверен, что происходит в вашей трассировке стека, но похоже, что этот параметр akka.jvm-exit-on-fatal-error просто вызывает сбой вашего приложения, а не выводит то, что вызывает сбой

Прочитав документацию, вы можете отключить его, выполнив что-то вроде этого:

jvm-exit-on-fatal-error = off

В вашем конфиге akka. Тогда вы можете получить более подробную трассировку стека

http://doc.akka.io/docs/akka/snapshot/general/configuration.html

Однако я также получал фатальную ошибку после обновления Mongo 3.0 на MongoLab. Моя ошибка заключалась в следующем:

DatabaseException['not authorized for query on auth-test.user' (code = 13)]

Вызвано 3.0 с использованием другой аутентификации, чем 2.6

mongo 2.6 использует протокол аутентификации MONGODB-CR, а 3.0 использует MONGODB-SHA-1 по умолчанию

Чтобы решить эту проблему, я изменил свой MongoURI, чтобы включить authMode следующим образом:

mongodb.uri = "mongodb://user:[email protected]:49431/DBName?authMode=scram-sha1"
person Darcys22    schedule 02.10.2015