Spring Boot Could not autowire field Kubernetes SERVICE_HOST
Spring Boot Could not autowire field Kubernetes SERVICE_HOST
我正在使用 minikube。我有一个名为 updatedaddress 的服务。我正在使用自动注入 kubernetes 环境变量从 updatecustomer 服务调用 updateaddress 服务。
我的 Java 代码如下所示
@Value("${UPDATEADDRESS_SERVICE_HOST}")
private String updateAddressHost;
@Value("${UPDATEADDRESS_SERVICE_PORT}")
private String updateAddressPort;
...
greeting= restTemplate.getForEntity("http://"+updateAddressHost+":"+updateAddressPort+"/updateaddress", Greeting.class).getBody();
当我执行以下命令时
kubectl --namespace=default-staging exec updatecustomer-4023824433-r5r19 env
我可以看到环境变量 UPDATEADDRESS_SERVICE_HOST=10.0.0.180 和 UPDATEADDRESS_SERVICE_PORT=80 以及许多其他变量。
当我尝试构建 spring 引导服务时,出现错误
Error creating bean with name 'updateCustomerInfoResilient': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private java.lang.String com.amwater.UpdateCustomerInfoResilient.updateAddressHost; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'UPDATEADDRESS_SERVICE_HOST' in string value "${UPDATEADDRESS_SERVICE_HOST}"
任何建议都会有所帮助。谢谢。
已设置使用服务器IP和端口号,尝试使用服务DNS名称并测试应用程序。
它会像这样my-svc.my-namespace.svc.cluster.local
替换你的服务名和命名空间。
这是文档https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
我正在使用 minikube。我有一个名为 updatedaddress 的服务。我正在使用自动注入 kubernetes 环境变量从 updatecustomer 服务调用 updateaddress 服务。
我的 Java 代码如下所示
@Value("${UPDATEADDRESS_SERVICE_HOST}")
private String updateAddressHost;
@Value("${UPDATEADDRESS_SERVICE_PORT}")
private String updateAddressPort;
...
greeting= restTemplate.getForEntity("http://"+updateAddressHost+":"+updateAddressPort+"/updateaddress", Greeting.class).getBody();
当我执行以下命令时
kubectl --namespace=default-staging exec updatecustomer-4023824433-r5r19 env
我可以看到环境变量 UPDATEADDRESS_SERVICE_HOST=10.0.0.180 和 UPDATEADDRESS_SERVICE_PORT=80 以及许多其他变量。
当我尝试构建 spring 引导服务时,出现错误
Error creating bean with name 'updateCustomerInfoResilient': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private java.lang.String com.amwater.UpdateCustomerInfoResilient.updateAddressHost; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'UPDATEADDRESS_SERVICE_HOST' in string value "${UPDATEADDRESS_SERVICE_HOST}"
任何建议都会有所帮助。谢谢。
已设置使用服务器IP和端口号,尝试使用服务DNS名称并测试应用程序。
它会像这样my-svc.my-namespace.svc.cluster.local
替换你的服务名和命名空间。
这是文档https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/