[Я редактирую этот вопрос, чтобы отразить мои последние тесты]
Я пытаюсь обновить приложение akka/play 2.3 с
"org.reactivemongo" %% "play2-reactivemongo" % "0.11.7.play23"
to
"org.reactivemongo" %% "play2-reactivemongo" % "0.11.11-play23"
Компиляция проходит нормально, но во время выполнения я получаю следующую ошибку:
[ERROR] -- NettyTransport(akka://reactivemongo)
failed to bind to /127.0.0.1:2552, shutting down Netty transport
...
Caused by: org.jboss.netty.channel.ChannelException: Failed to bind to: /127.0.0.1:2552
Akka-часть application.conf выглядит следующим образом:
akka {
loggers = ["akka.event.slf4j.Slf4jLogger"]
loglevel = "DEBUG"
actor {
provider = "akka.remote.RemoteActorRefProvider"
mailbox {
requirements {
"akka.dispatch.BoundedMessageQueueSemantics" = bounded-mailbox
}
}
}
remote {
enabled-transports = ["akka.remote.netty.tcp"]
netty.tcp {
hostname = "127.0.0.1"
port = 2552
}
}
}
Исключение возникает при попытке создать экземпляр драйвера reactivemongo.
val driver = new reactivemongo.api.MongoDriver()
Это говорит о том, что mongodriver использует Akka под капотом и привязывается к тому же адресу, что и мое основное приложение. И действительно, если я отредактирую свой application.conf и изменю akka.remote.netty.tcp.port с 2552 на 2553, я получу следующее исключение:
[ERROR] -- NettyTransport(akka://reactivemongo)
failed to bind to /127.0.0.1:2553, shutting down Netty transport
В предыдущих версиях reactivemongo по умолчанию создание экземпляра драйвера запускало новую систему акторов, поэтому, возможно, версия 0.11.11 пытается повторно использовать существующую систему?
Я попытался изменить порт akka, используемый драйвером, следующим образом:
val customConf = ConfigFactory.parseString("""
akka {
remote {
netty.tcp.port = 4711
}
}
""")
val typesafeConfig: com.typesafe.config.Config = ConfigFactory.load(customConf)
val driver = new reactivemongo.api.MongoDriver(Some(typesafeConfig))
Но это не работает, новый порт не учитывается, и я продолжаю получать ту же ошибку:
[ERROR] -- NettyTransport(akka://reactivemongo)
failed to bind to /127.0.0.1:2552, shutting down Netty transport
connection(..)
, также известный какconnection.apply
, вам лучше использовать новыйconnection.database
с правильным разрешением БД. - person cchantep   schedule 25.05.2016