无法解析值为“ $ {server.port}”

时间:2019-02-14 00:03:22

标签: java spring jhipster

将jHipster项目从4.14.5版本升级到5.8.1版本后,在尝试运行该应用程序时出现此错误:

  

上下文初始化期间遇到异常-取消   刷新尝试:   org.springframework.beans.factory.BeanCreationException:错误   在文件中定义名称为“ loggingConfiguration”的bean   [\ config \ LoggingConfiguration.class]:

     

bean创建期间发生意外异常;嵌套异常为   java.lang.IllegalArgumentException:无法解析占位符   值“ $ {server.port}”中的“ server.port”

您是否知道可能是问题的原因?

3 个答案:

答案 0 :(得分:0)

Spring在@Value批注中的各个位置查找指定的占位符。由于您可能正在运行Spring Boot应用程序,因此您可能需要检查documentation的外部配置。

我敢打赌,您确实将它指定为命令行参数,或者在application.properties资源文件中指定了。

顺便说一句,.(点)不是问题。

答案 1 :(得分:0)

我遇到了同样的问题,我只需在 application.properties

中添加 server.port 属性即可解决此问题

MultiplicationController.java

@Slf4j
@RestController
@RequestMapping("/multiplications")
@CrossOrigin(origins = "http://localhost:9090")
final class MultiplicationController {

    private final MultiplicationService multiplicationService;

    private final int serverPort;

    @Autowired
    public MultiplicationController(final MultiplicationService multiplicationService,
            @Value("${server.port}") int serverPort) {
        this.multiplicationService = multiplicationService;
        this.serverPort = serverPort;
    }

    @GetMapping("/random")
    public Multiplication getRandomMultiplication() {
        log.info("Generating a random multiplication from server @ {}", serverPort);
        return multiplicationService.createRandomMultiplication();
    }
}

application.properties

server.port=8080

答案 2 :(得分:-1)

我只是遇到了同样的问题。 当我将“。”替换为“ _”时,它实际上起作用了 所以我的方法:

@Value("${server_port")
Integer port;

和我的properties.yml

server:
  port: 1234
server_port: 1234

当然,冗余并不是理想的选择,但是@Value似乎无法处理“。”。