Typesafe Config - reference.conf другое поведение?

Мне кажется, что application.conf и reference.conf ведут себя по-разному. Я понимаю, что reference.conf задуман как конфигурация «безопасного отката», которая работает каждый раз, а application.conf специфичен. Однако я ожидал, что конфигурация, загруженная из любого из них, будет вести себя точно так же в смысле анализа конфигурации.

Я столкнулся с тем, что если конфигурация находится в application.conf, она работает нормально, а когда тот же файл переименовывается в reference.conf, он не работает.

2015-03-30 11:35:54,603 [DEBUG] [BackEndServices-akka.actor.default-dispatcher-15] [com.ss.rg.service.ad.AdImporterServiceActor]akka.tcp://[email protected]:2551/user/AdImporterService - Snapshot saved successfully - removing messages and snapshots up to 0 and timestamp: 1427708154584
2015-03-30 11:35:55,037 [DEBUG] [BackEndServices-akka.actor.default-dispatcher-4] [spray.can.server.HttpListener]akka.tcp://[email protected]:2551/user/IO-HTTP/listener-0 - Binding to /0.0.0.0:8080
2015-03-30 11:35:55,054 [DEBUG] [BackEndServices-akka.actor.default-dispatcher-15] [akka.io.TcpListener]akka.tcp://[email protected]:2551/system/IO-TCP/selectors/$a/0 - Successfully bound to /0:0:0:0:0:0:0:0:8080
2015-03-30 11:35:55,056 [INFO ] [BackEndServices-akka.actor.default-dispatcher-4] [spray.can.server.HttpListener]akka.tcp://[email protected]:2551/user/IO-HTTP/listener-0 - Bound to /0.0.0.0:8080

По сравнению с :

2015-03-30 11:48:34,053 [INFO ] [BackEndServices-akka.actor.default-dispatcher-3] [Cluster(akka://BackEndServices)]Cluster(akka://BackEndServices) - Cluster Node [akka.tcp://[email protected]:2551] - Leader is moving node [akka.tcp://[email protected]:2551] to [Up]
2015-03-30 11:48:36,413 [DEBUG] [BackEndServices-akka.actor.default-dispatcher-15] [spray.can.server.HttpListener]akka.tcp://[email protected]:2551/user/IO-HTTP/listener-0 - Binding to "0.0.0.0":8080
2015-03-30 11:48:36,446 [DEBUG] [BackEndServices-akka.actor.default-dispatcher-3] [akka.io.TcpListener]akka.tcp://[email protected]:2551/system/IO-TCP/selectors/$a/0 - Bind failed for TCP channel on endpoint ["0.0.0.0":8080]: java.net.SocketException: Unresolved address
2015-03-30 11:48:36,446 [WARN ] [BackEndServices-akka.actor.default-dispatcher-15] [spray.can.server.HttpListener]akka.tcp://[email protected]:2551/user/IO-HTTP/listener-0 - Bind to "0.0.0.0":8080 failed

Расчетная разница указывается в двойных кавычках. И моя конфигурация указана следующим образом:

akka {
  ... standard akka configuration ...
}

webserver.port = 8080
webserver.bindaddress = "0.0.0.0"

Настройка конфигурации загружается в код следующим образом:

  val webserver_port_key = "webserver.port"
  val webserver_bindaddress_key = "webserver.bindaddress"
  protected val webserver_bindaddress = ConfigFactory.load().getString(webserver_bindaddress_key)
  protected val webserver_port = ConfigFactory.load().getInt(webserver_port_key)

Я что-то пропустил? Я дважды проверил, что порт 8080 свободен, когда не удается привязать файл reference.conf.

Спасибо за подсказки

ОБНОВЛЕНИЕ: начать с log-config-on-start = on: - Когда он находится в application.conf

# application.conf: 60-61
"webserver" : {
    # application.conf: 61
    "bindaddress" : "0.0.0.0",
    # application.conf: 60
    "port" : 8080
}

- Когда он находится в reference.conf

# reference.conf: 60-61
"webserver" : {
    # reference.conf: 61
    "bindaddress" : "0.0.0.0",
    # reference.conf: 60
    "port" : 8080
}

Обнаружена проблема:

# application.properties
"webserver" : {
    # application.properties
    "bindaddress" : "\"0.0.0.0\"",
    # application.properties
    "port" : "8080"
}

person jaksky    schedule 30.03.2015    source источник
comment
Не могли бы вы объяснить, в чем проблема? Я не понимаю из вашего обновления.   -  person Robin Green    schedule 14.07.2015


Ответы (1)


Кажется, что bindaddress другого типа, потому что он по-разному отображается в журналах.

В любом случае включите печать полной конфигурации Akka при запуске с помощью этого параметра в вашей конфигурации:

log-config-on-start = on

Затем сравните обе конфигурации, чтобы увидеть, где они не совпадают. Они должны работать одинаково, если они такие же. Я подозреваю, что вы определяете bindaddress иначе, т.е. String по сравнению с каким-то другим типом.

person yǝsʞǝla    schedule 30.03.2015