0

为了在我的本地运行应用程序,我需要提供一些 VM 参数(基本上是文件路径,它所在的位置)。在 PCF 中,我也必须以类似的方式提供这些论点。

目前我保存在 application.yml 文件中,如下所示。

    jaas: 
      conf: /home/vcap/app/BOOT-INF/classes/nonprod_jaas.conf

    krb5: 
      conf: /home/vcap/app/BOOT-INF/classes/krb5.conf

    trustore: 
      conf: /home/vcap/app/BOOT-INF/classes/kafka_client_truststore.jks   

当我在 PCF 中部署应用程序时,是否将从该位置读取这些文件。

基本上我想知道这是不是在 PCF 中提供参数的正确方法。

如何检查文件是否存在于该位置,/home/vcap/app/BOOT-INF/classes/

4

1 回答 1

0

您需要 ssh 进入容器以检查文件的位置。

cf ssh appname

在 spring 中,@Value允许使用classpath:前缀来解析类路径(请参阅此链接)https://www.baeldung.com/spring-classpath-file-accessclasspath:这意味着您需要以编程方式设置它,而不是通过 yml 中的变量. 然后,您不需要按照您的方式提供路径。

也是classpath:Spring 特定的约定,JVM 不理解它,这意味着您不能直接在application.yml文件中使用它。如果您需要在 yml 中设置或作为环境变量 - 您需要给它一个完整或相对路径。在 PCF 上,您可以使用/appor /home/vcap/app(前者是后者的符号链接)作为应用程序根目录的路径。

于 2021-05-13T14:32:55.853 回答