1
我有一個web.xml文件,它在上下文參數和init-param過濾器中設置變量。我想用應用程序啓動時從屬性文件中取得的值來替換這個變量。啓動時替換web.xml變量
我的web.xml是這樣的:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<display-name>APP NAME</display-name>
<description>
App description
</description>
<context-param>
<param-name>my-param-name</param-name>
<param-value>${my-param-name}</param-value>
</context-param>
<filter>
<filter-name>Authentication Filter</filter-name>
<filter-class>my.app.Filter</filter-class>
<init-param>
<param-name>filter-var-name</param-name>
<param-value>${filter-var-value}</param-value>
</init-param>
</filter>
...
</web-app>
而且web.properties
my-param-name=${PARAM_VALUE_TO_BE_SETTED_BY_TOOL}
filter-var-value=${FILTER_VALUE_TO_BE_SETTED_BY_TOOL}
下面是部署如何工作:閱讀給定
1)部署工具屬性文件,並用PROD或Dev值(在該工具中設置的值)替換變量,並將文件推送到JBoss下的應用程序模塊;
2)在JBoss上啓動應用程序的部署。我希望在啓動時將web.xml變量替換爲屬性文件值。
在此先感謝。
你能詳細說明你爲什麼要這麼做嗎?如果僅僅是「不要搞亂webapp web.xml」,你應該考慮爲這些值使用上下文參數並且在部署上進行配置(在你的上下文的單獨的context.xml中) – Jan
有兩個想法:a)直接在web中替換值.xml而不是步驟1中的屬性文件或重新編碼過濾器,並使您可以訪問上下文參數來讀取屬性值。 – Jan
第一個是我現在的但不好,因爲我必須有一個戰爭文件的PROD和DEV。我無法實現第二個建議,因爲我無法重新編碼所有過濾器。 –