我在我的JBOSS的run.conf中添加了一个系统属性,如下所示:
JAVA_OPTS="$JAVA_OPTS -Dfoo=bar"
现在我的问题是,如果有办法在web.xml文件中以这样的方式解析此属性:
...
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:applicationContext-common.xml
classpath:conf/${foo}/applicationContext-local.xml
</param-value>
</context-param>
...
答案 0 :(得分:4)
您必须将standalone.xml中的 spec-descriptor-property-replacement 设置为 true
<subsystem xmlns="urn:jboss:domain:ee:1.2">
<spec-descriptor-property-replacement>true</spec-descriptor-property-replacement>
<jboss-descriptor-property-replacement>true</jboss-descriptor-property-replacement>
</subsystem>
答案 1 :(得分:3)
由于JBoss在内部使用tomcat web-container,它应该像你的示例一样工作($ {foo} /applicationContext-local.xml)。我没有尝试过JBoss案例,但我们一直在Tomcat中使用这种技术。
答案 2 :(得分:1)
web.xml应仅适用于单个Web应用程序。它不应该具有全局配置。所以不行。无论如何,当服务器和你的webapp加载时,开始播放命令行参数的时间会很晚。
答案 3 :(得分:0)
我不知道有任何可能性。但在我看来,这应该在应用程序中实现。为什么你想增加间接?通常,您可以从应用程序(app&gt; web.xml)中访问web.xml的内容。为什么:app&gt; web.xml&gt;环境变量?