私はこのようなWEB-INF/web.xml
何かにfile.properties
からいくつかの値を含める必要があります。私は現在、これで働いている.propertiesファイルからweb.xmlに値を含めるには?
<param-name>uploadDirectory</param-name>
<param-value>myFile.properties['keyForTheValue']</param-value>
:
- のJBoss
- JEE5
私はこのようなWEB-INF/web.xml
何かにfile.properties
からいくつかの値を含める必要があります。私は現在、これで働いている.propertiesファイルからweb.xmlに値を含めるには?
<param-name>uploadDirectory</param-name>
<param-value>myFile.properties['keyForTheValue']</param-value>
:
このクラスを追加すると、ファイルのすべてのプロパティをJVMに追加できます。あなたは
System.getProperty(...)
またはweb.xml内を使用してプロジェクトにし、web.xmlにweb.xml
public class InitVariables implements ServletContextListener
{
@Override
public void contextDestroyed(final ServletContextEvent event)
{
}
@Override
public void contextInitialized(final ServletContextEvent event)
{
final String props = "/file.properties";
final Properties propsFromFile = new Properties();
try
{
propsFromFile.load(getClass().getResourceAsStream(props));
}
catch (final IOException e)
{
// can't get resource
}
for (String prop : propsFromFile.stringPropertyNames())
{
if (System.getProperty(prop) == null)
{
System.setProperty(prop, propsFromFile.getProperty(prop));
}
}
}
}
になりまし
<listener>
<listener-class>
com.company.InitVariables
</listener-class>
</listener>
あなたはすべてのプロパティを取得することができますし、コンテキスト・リスナーのようにこのクラスを追加
<param-name>param-name</param-name>
<param-value>${param-name}</param-value>
ありがとう、これは私が探していたソリューションです – lancha90
私はcouldn Jettyが相対パスとgetResourceAsStreamを使用してリソースを検索するようにしますが、絶対パスとFileInputStreamは動作するように見えます。 – jsh
これ用のユーティリティはありませんか? – user447607
Antのreplacetokenタスクを使用します。 https://blogs.oracle.com/rajeshthekkadath/entry/automation_using_ant_replace_function
上記の容認された解決策に関する注意の言葉。
contextInitialized()
メソッドは、web.xml
がロードされるまで呼び出されないため、システムプロパティへの変更は適時に反映されません。不思議なことに、これは、webappを(jbossを再起動せずに)再配備すると、プロパティが最後に配備されてから生き残り、動作するように見えることを意味します。
代わりに使用するソリューションは、jbossにパラメータをjavaコマンドライン経由で渡すことです。 -Dparameter1=value1 -Dparameter2=value2
。
もっと良い解決策(jboss 7では動作しません)は、properties.service.xmlを使用することです。あなたはその場でプロパティをマップすることができます。 – gebuh
これは良い考えです(これは、システム管理者がシステムプロパティを保持することを好みます)。私は 'server/default/deploy'と' server/all/deploy'の下でproperties.services.xmlを更新しようとしましたが、いずれの場合もweb.xmlには反映されません – dannyclark
[web.xmlでのプロパティの使用](http://stackoverflow.com/questions/2948992/using-properties-in-web-xml) – imgx64