La mise en place de sensibilisation par les pairs pour le printemps-Cloud Netflix sur serveur Eureka

voix
2

Je construis un serveur Eureka avec Spring Nuage Netflix. Le serveur fonctionne donc je suis en train d'essayer d'ajouter un second serveur Eureka pour améliorer la résilience et de fournir un serveur de secours lors de la mise à jour du serveur.

http://cloud.spring.io/spring-cloud-netflix/spring-cloud-netflix.html rend ce son assez facile: Il vous suffit de config votre serveur comme clients Eureka eux - mêmes. Donc , j'ai ajouté à ma bootstrap.yml configuration pour le client:

eureka:
    client:
        serviceUrl:
            defaultZone: http://user:password@172.31.7.240:8762/eureka/

Pour autant que je peux le dire est identique à la configuration actuellement utilisée par mes autres clients eureka. Donc, je suppose cela fonctionnerait. Mais au lieu que je reçois une exception étrange:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'discoveryManagerIntitializer': Injection of autowired dependencies failed; nested exception is     org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.netflix.discovery.EurekaClientConfig org.springframework.cloud.netflix.eureka.DiscoveryManagerInitializer.clientConfig; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'eurekaClientConfigBean': Could not bind properties to [unknown] (target=eureka.client, ignoreInvalidFields=false, ignoreUnknownFields=true, ignoreNestedProperties=false); nested exception is org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 2 errors
Field error in object 'eureka.client' on field 'serviceUrl': rejected value [http://user:password@172.31.7.240:8762/eureka/]; codes [typeMismatch.eureka.client.serviceUrl,typeMismatch.serviceUrl,typeMismatch.java.util.Map,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [eureka.client.serviceUrl,serviceUrl]; arguments []; default message [serviceUrl]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Map' for property 'serviceUrl'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [java.util.Map] for property 'serviceUrl': no matching editors or conversion strategy found]
Field error in object 'eureka.client' on field 'serviceUrl': rejected value [http://user:password@172.31.7.240:8762/eureka/]; codes [typeMismatch.eureka.client.serviceUrl,typeMismatch.serviceUrl,typeMismatch.java.util.Map,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [eureka.client.serviceUrl,serviceUrl]; arguments []; default message [serviceUrl]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Map' for property 'serviceUrl'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [java.util.Map] for property 'serviceUrl': no matching editors or conversion strategy found]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1202)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:686)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:320)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:957)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:946)
    at com.emnos.registry.RegistryApplication.main(RegistryApplication.java:18)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:53)
    at java.lang.Thread.run(Thread.java:745)

Il est clair que mon URL est en fait lu à partir de la configuration (à elle apparaît dans l'exception). Mais on dirait qu'il est analysé de manière incorrecte. L'exception me dit que je me sers d' un Stringpour eureka.client.serviceUrl quand je devrais utiliser un Map. Mais je suis en fait en utilisant une Mapavec la paire clé-valeur defaultZone: http://user:password@172.31.7.240:8762/eureka/.

Quelqu'un at-il vu une exception comme ça avant et peut me dire ce que je fais mal? Comme la graisse que je peux dire que je suis en utilisant exactement la même syntaxe que celle utilisée dans la documentation du printemps.

Modifier:

Je viens au printemps mis à jour Boot 1.2.3.RELEASE et Spring Nuage Netflix 1.0.1.RELEASE donc je devrais utiliser la dernière version.

Créé 28/04/2015 à 14:07
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
0

Figured it out après la forme de commentaires @DaveSyer.

Il y avait en fait une autre source de la propriété: Les variables d' environnement. Une variable nommée EUREKA_CLIENT_SERVICE_URLa été définie non intentionnelle remplacement de la configuration du YAML. Après avoir enlevé / renomme ce tout variables a commencé à travailler.

Créé 29/04/2015 à 08:02
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more