J'ai une application basée sur spring-boot qui est déployée en pot. Il a une forme de Maven projet multi-module et contient des pièces suivantes:Spring Eureka Client ne voit pas le port du serveur depuis le fichier de configuration
- web
- Service
- dépôt
- modèle
Mon module web a besoin de tous les autres à se construire et contient dans son répertoire de ressources le fichier suivant:
- bootstrap.yml
Le bootstrap.yml contient la configuration suivante:
eureka:
client:
eureka-server-port: 8761
server:
port: 8763
context-path: /foo-service/rest
spring:
application:
name: foo-service
Je me attends que lors de réveil, il utilisera le port 8761 et s'inscrire au service Eureka. En raison de quelque raison quand je debug à:
org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration#eurekaInstanceConfigBean
l'instance de EurekaInstanceConfigBean contient des valeurs suivantes:
- instanceId = 172.20.39.197:foo-service:8763
- nonSecurePort = 8080
Ce qui est bizarre est nonSecurePort mis sur 8080 au lieu de 8763. Dans mes autres services (qui fonctionne correctement) le nonSecurePort a la même valeur que la dernière partie de instanceId. Seulement dans foo-service la valeur est différente.
La raison de cela est:
@Value("${server.port:${SERVER_PORT:${PORT:8080}}}")
int nonSecurePort;
ne peut pas trouver la configuration et retourne la valeur par défaut. Mais pourquoi? J'ai vérifié le foo.jar créé par maven et le bootstrap.yml est là à l'endroit correct (BOOT-INF/classes/bootstrap.yml) avec les valeurs correctes ...
Quelqu'un a-t-il une idée de ce qui peut être? faux?
Pourriez-vous fournir un exemple reproduisant le problème? –
J'ai essayé de créer mais tous les échantillons simples fonctionnent pour moi. Seule cette application unique et complexe ne fonctionne pas. Quand je parviens à obtenir plus d'informations immédiatement partager ici. Mais merci! –