【发布时间】:2016-05-25 13:14:00
【问题描述】:
[我正在重新编辑这个问题以反映我上次的测试]
我正在尝试从
升级我的 akka / play 2.3 应用程序"org.reactivemongo" %% "play2-reactivemongo" % "0.11.7.play23"
到
"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
application.conf 的 Akka 部分内容如下:
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
}
}
}
尝试实例化响应式mongo驱动程序时引发异常
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版本中,默认情况下,实例化驱动程序是启动一个新的actor系统,所以也许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(..)akaconnection.apply,您最好使用新的connection.database,它具有适当的数据库分辨率。 -
完成,所有的connection()都被connection.db()替换了。但是它并不能解决问题。
-
我说的不是 .db 而是 .database ,完全不一样
标签: akka playframework-2.3 initializer reactivemongo