web.xmlファイルにcontext-paramと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に迷惑をかけない」のであれば、これらの値にコンテキストパラメータを使用し、デプロイメント時にコンテキストを設定することを考慮する必要があります( – Jan
)。 .xmlの代わりに.xmlを使用するか、フィルタリングして、代わりにプロパティの値を読み取るコンテキストパラメータにアクセスします。 – Jan
最初のものは私が今持っているものですが、PRODとDEVのために1つのwarファイルを持っていなければならないためです。私はすべてのフィルタを再コード化できないので、2番目の提案を実装できません。 –