Java 无法读取WildFly系统属性
我将一个应用程序打包在EAR文件中,并部署在WildFly 9.0.2 Final上。它需要读取WildFly定义的一些系统属性 问题是EAR中的类无法读取WildFly系统属性。例如-以下代码获取NullPointerException:Java 无法读取WildFly系统属性,java,jboss,wildfly,wildfly-9,Java,Jboss,Wildfly,Wildfly 9,我将一个应用程序打包在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(DEPLO
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)
请注意,当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无法读取任何系统属性有什么原因吗?我首先要说的是,在大型系统中,很难诊断这些问题 在JVM中,系统属性是共享的,您应该始终看到相同的值,正如Wildfly9文档所确认的那样,同时警告您 系统属性等在 应用程序服务器本身,而不是包含该文件的部署 因此答案应该是否定的:EAR可以读取所有系统属性,因为您没有收到SecurityException(这排除了您在安全上下文中运行并且它正在阻止您的事实) 无论如何,可能有一些情况你应该检查一下,比如:
读取系统道具的代码在哪里。什么时候执行?它可能是静态初始值设定项的一部分吗?您确定正在执行此代码吗?如果属性为
null
,DEPLOY\u DIR
应该类似于null\deployments
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