【发布时间】: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 是否有任何原因无法读取任何系统属性?
【问题讨论】:
-
读取系统道具的代码在哪里。它什么时候被执行?它可能是静态初始化程序的一部分吗?
-
你确定这段代码正在执行吗?如果您的属性是
null,DEPLOY_DIR应该类似于null\deployments
标签: java jboss wildfly wildfly-9