file.properties
a の値を次のWEB-INF/web.xml
ようなものに含める必要があります。
<param-name>uploadDirectory</param-name>
<param-value>myFile.properties['keyForTheValue']</param-value>
私は現在これに取り組んでいます:
- Jボス
- JEE5
file.properties
a の値を次のWEB-INF/web.xml
ようなものに含める必要があります。
<param-name>uploadDirectory</param-name>
<param-value>myFile.properties['keyForTheValue']</param-value>
私は現在これに取り組んでいます:
ファイルのすべてのプロパティを JVM に追加するこのクラスを追加できます。そして、このクラスを context-listener のように追加します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));
}
}
}
}
web.xml で
<listener>
<listener-class>
com.company.InitVariables
</listener-class>
</listener>
を使用して、プロジェクト内のすべてのプロパティを取得できるようになりました
System.getProperty(...)
または web.xml で
<param-name>param-name</param-name>
<param-value>${param-name}</param-value>
上記の受け入れられた解決策に関する注意事項。
今日、jboss 5 でこれを試していました。contextInitialized()
メソッドがロードされるまでメソッドが呼び出されないweb.xml
ため、システム プロパティへの変更が時間内に反映されません。奇妙なことに、これは、(jboss を再起動せずに) webapp を再デプロイすると、最後にデプロイされたときにプロパティが設定されたままになるため、機能しているように見える場合があることを意味します。
代わりに使用する解決策は、パラメータを java コマンドライン経由で jboss に渡すことです-Dparameter1=value1 -Dparameter2=value2
。
Antのreplacetokenタスクを使用します。https://blogs.oracle.com/rajeshthekkadath/entry/automation_using_ant_replace_function