我正在使用 JBoss 5 和系统属性服务来设置我的应用程序(ear with war)需要的一些系统属性。其中之一是 jboss-web.xml 中引用的虚拟主机的名称:
<jboss-web>
<context-root>/</context-root>
<virtual-host>${my.host.system.prop}</virtual-host>
...
<depends>jboss:type=Service,name=SystemProperties</depends>
</jboss-web>
请注意对 SystemProperties 服务的依赖性。
但是,在服务器启动时,我的应用程序会在设置系统属性之前加载。通过触摸耳朵重新部署即可解决问题。有趣的是,我可以从日志中看到 SystemProperties 服务确实在部署我的应用程序之前加载。
大家有什么想法吗?如果可以的话,我不想诉诸于在 JAVA_OPTS 中设置 props。
最佳答案
您的 SystemProperties mbean 在哪里定义的?我在使用 JBoss 4.2 时遇到了类似的问题,通过将 mbean 定义放入 conf/jboss-service.xml 而不是将其放入部署目录中解决了我的问题。这导致SystemProperties mbean在jboss启动时加载。
此解决方案的唯一缺点是您失去了 SystemProperties mbean 的热部署能力。
关于java - 服务器启动时 jboss-web.xml 中的系统属性引用未解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6289731/