【问题标题】:fail to read WildFly system properties无法读取 WildFly 系统属性
【发布时间】:2016-01-13 13:17:47
【问题描述】:

我有一个打包在 EAR 文件中并部署在 WildFly 9.0.2 Final 上的应用程序。它需要读取 WildFly 定义的一些系统属性。

问题是 EAR 中的类无法读取 WildFly 系统属性。例如 - 下面的代码得到一个 NullPointerException:

String DEPLOY_DIR  = System.getProperty("jboss.server.base.dir") + File.separator + "deployments"
File deployDir = new File(DEPLOY_DIR);

这是错误:

java.lang.NullPointerException
            at java.io.File.<init>(File.java:277)

发生错误是因为以下返回null:

System.getProperty("jboss.server.base.dir")

请注意,当 WildFly 上线时,其相关系统属性会正确显示在其日志中:

jboss.server.base.dir = C:\javaSoft\workspaces\WildFly_Migration\App\configuration\wildfly-9.0.2.Final\standalone
jboss.server.config.dir = C:\javaSoft\workspaces\WildFly_Migration\App\configuration\wildfly-9.0.2.Final\standalone\configuration
jboss.server.data.dir = C:\javaSoft\workspaces\WildFly_Migration\App\configuration\wildfly-9.0.2.Final\standalone\data
jboss.server.deploy.dir = C:\javaSoft\workspaces\WildFly_Migration\App\configuration\wildfly-9.0.2.Final\standalone\data\content
jboss.server.log.dir = C:\javaSoft\workspaces\WildFly_Migration\App\configuration\wildfly-9.0.2.Final\standalone\log

我的问题 - EAR 是否有任何原因无法读取任何系统属性?

【问题讨论】:

  • 读取系统道具的代码在哪里。它什么时候被执行?它可能是静态初始化程序的一部分吗?
  • 你确定这段代码正在执行吗?如果您的属性是nullDEPLOY_DIR 应该类似于null\deployments

标签: java jboss wildfly wildfly-9


【解决方案1】:

我首先要说的是,在大型系统中,很难诊断出这些问题。

在 JVM 中,系统属性是共享的,您应该始终看到相同的值,正如 Wildfly9 文档确认的那样,同时警告您注意 Property Replacement 的风险

系统属性等在安全上下文中解析 应用程序服务器本身,而不是包含该文件的部署。

所以答案应该是否定的:EAR 可以读取所有系统属性,因为您没有收到 SecurityException(这不包括您在安全上下文中运行并且它正在阻塞的事实你)。

无论如何,您可能应该检查某些情况,例如:

  1. 您的一段代码在另一段删除该值的代码之后运行。您可以使用环境变量 $JBOSS_HOME 解决这些问题。
  2. 您的 DEPLOY_DIR 是一个静态常量(在这种情况下,可以在 Wildfly 设置 jboss.server.base.dir 之前对其进行评估)。您可以使用由standalone.sh 直接创建的“jboss.home.dir”键来解决此问题。
  3. 您的代码在静态 { ... } 初始化块中运行。如果是这种情况,在其中使用“新文件”是一种不好的做法,但如果不是,您可以将其作为案例 2 来解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-25
    • 2012-11-25
    • 1970-01-01
    • 2014-12-15
    • 2015-03-02
    相关资源
    最近更新 更多