我有一個打包在EAR文件中並部署在WildFly 9.0.2 Final上的應用程序。它需要讀取由WildFly定義的一些系統屬性。無法讀取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是否有任何理由不能讀取任何系統屬性?
您的代碼讀取系統道具在哪裏?並在什麼時候執行?它可能是靜態初始化器的一部分嗎? – ctomc
你確定這段代碼正在執行嗎?如果你的屬性是'null','DEPLOY_DIR'應該是'null \ deployments' – user140547