我有一个打包在 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 是否有任何理由无法读取任何系统属性?