Spring boot Spring yaml在aws服务器上不工作

Spring boot Spring yaml在aws服务器上不工作,spring-boot,yaml,Spring Boot,Yaml,我有一个带有此yaml的spring boot应用程序: --- spring: profiles: production server: port: 8080 servicesUrl: aaa: aaa.aaa.aaa:9090 我使用gradle Assembly创建了这个罐子 当我在本地运行它时: java -Dspring.profiles.acitve=production -jar aaa.jar 一切都很好 我将jar scp到服务器,当我运行

我有一个带有此yaml的spring boot应用程序:

    ---
spring:
    profiles: production
server:
    port: 8080

servicesUrl:
  aaa:  aaa.aaa.aaa:9090
我使用gradle Assembly创建了这个罐子

当我在本地运行它时:

java -Dspring.profiles.acitve=production -jar aaa.jar 
一切都很好

我将jar scp到服务器,当我运行完全相同的命令时,我得到:

BeanCreationException: Error creating bean with name 'aaaController': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'servicesUrl.aaa' in value "${servicesUrl.aaa}"
我必须声明,正在根据配置文件为不同的端口提供服务,包括本地端口和AWS端口

这是课堂上的一行:

@Value("${servicesUrl.aaa}")
private String aaaServiceUrl;

我做错了什么?

您的YAML文件似乎有问题:

    ---
spring:
    profiles: production
server:
    port: 8080

servicesUrl:
  aaa:  aaa.aaa.aaa:9090
YAML只接受2个空格的缩进。如果将缩进与
\t
或4个空格混合使用,则无法正确解析文件。以下是YAML文件的外观:

---
spring:
  profiles: production
server:
  port: 8080

servicesUrl:
  aaa:  aaa.aaa.aaa:9090
您的
java
命令(单词“acitve”)中也有输入错误:

应该是:

java -Dspring.profiles.active=production -jar aaa.jar 

我注意到的一件事是,您已经定义了两次
-jar
,它只是一个typo@IdoBarash可能是你的命令输入错误造成的。我已经更新了答案。不用担心,你已经前进了,这是最重要的。祝你好运@如果我的回答有助于解决问题,你可以接受我的回答。Thx预付款!:)
java -Dspring.profiles.active=production -jar aaa.jar