2015-03-30 1 views
1

Il me semble que application.conf et reference.conf se comportent différemment. Je comprends bien que reference.conf est conçu comme une configuration de «sécurité» qui fonctionne à chaque fois et application.conf est spécifique. Cependant, je m'attendrais à ce que la configuration chargée de l'un ou l'autre se comporte exactement de la même manière dans le sens de l'analyse de la configuration. Ce à quoi je fais face est que si la configuration est dans application.conf cela fonctionne très bien et quand le même fichier est renommé en reference.conf cela ne fonctionne pas.Typesafe Config - le comportement différent de 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 

Par rapport à:

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 

La différence de Settle sont des guillemets doubles. Et ma configuration est spécifiée comme suit:

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

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

paramètre de configuration est chargé comme suit dans le code:

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) 

Ai-je raté quelque chose? J'ai vérifié que le port 8080 est libre quand reference.conf ne parvient pas à se lier.

Merci pour

conseils

MISE À JOUR: Commencez par log-config-sur-start = sur: - Quand il est application.conf

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

- Quand il est en reference.conf

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

Problème trouvé:

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

Pouvez-vous s'il vous plaît expliquer quel était le problème ici? Je ne comprends pas de votre mise à jour. –

Répondre

1

Il semble que le bindaddress soit d'un type différent car il apparaît différemment dans les journaux.

Dans les deux cas permettent l'impression de configuration complète sur Akka départ avec ce paramètre dans votre config:

log-config-on-start = on 

Ensuite, comparez les deux configurations pour voir où ils discordances. Ils devraient fonctionner de la même manière s'ils sont identiques. Je soupçonne que la façon dont vous définissez bindaddress est différente, c'est-à-dire chaîne vs un autre type.