【问题标题】:Environment variables with wildfly not workingWildfly 的环境变量不起作用
【发布时间】:2018-10-03 09:36:59
【问题描述】:

在我的应用程序启动中,我从应用程序属性中的环境变量中获取了一些变量。

它适用于 Spring Boot 容器。

但是当我使用 wildfly 10 System.getenv 启动应用程序时,总是返回 null。我在 STS 的运行配置中设置了我的环境变量,它在运行 wildfly 的 openshift 中也不起作用。

这是我的代码示例:

String showSql = System.getenv("SHOW_SQL");

if(value.contains(":")){
    int split = value.indexOf(":");
    List<String> s = new ArrayList<String>();
    s.add(value.substring(1, split)) ;
    s.add(value.substring(split+1, value.length()-1));
    // value.split(":");

    if(System.getenv(s.get(0)) != null){
        var = System.getenv(s.get(0));
    }else{
        var = s.get(1);
        var = var.replace(":", "");
    }                           
}else{
    value = value.replace("{", "");
    value = value.replaceAll("}", "");
    var = System.getenv(value);
}

谁能帮帮我?

【问题讨论】:

  • 我怀疑问题在于您如何为运行 wildfly 的 JVM 进程提供环境变量——也许您可以考虑一下这与运行 Spring Boot 的方式之间的区别?
  • 这不是环境变量,而是常规的 java 系统属性。这些是不同的东西。而是使用System.getProperty
  • 我用过,但它也不起作用

标签: java spring-boot environment-variables wildfly application.properties


【解决方案1】:

您可以使用 jboss-cli 使用命令在 Wildfly 中设置属性 /system-property=foo:add(value=bar) 然后您可以使用 System.getProperty 从您的应用程序中获取它(同时可能需要重新加载)。该属性将被存储到 Wildfly 配置中,因此它可以在重新启动后继续存在 :)

【讨论】:

    猜你喜欢
    • 2021-11-13
    • 2020-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-27
    • 2020-10-04
    • 2021-03-30
    相关资源
    最近更新 更多