8

file.propertiesa の値を次のWEB-INF/web.xmlようなものに含める必要があります。

<param-name>uploadDirectory</param-name>
<param-value>myFile.properties['keyForTheValue']</param-value>

私は現在これに取り組んでいます:

  • Jボス
  • JEE5
4

3 に答える 3

14

ファイルのすべてのプロパティを 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>
于 2012-08-23T20:37:02.950 に答える
3

上記の受け入れられた解決策に関する注意事項。

今日、jboss 5 でこれを試していました。contextInitialized()メソッドがロードされるまでメソッドが呼び出されないweb.xmlため、システム プロパティへの変更が時間内に反映されません。奇妙なことに、これは、(jboss を再起動せずに) webapp を再デプロイすると、最後にデプロイされたときにプロパティが設定されたままになるため、機能しているように見える場合があることを意味します。

代わりに使用する解決策は、パラメータを java コマンドライン経由で jboss に渡すことです-Dparameter1=value1 -Dparameter2=value2

于 2013-01-03T22:01:30.957 に答える
0

Antのreplacetokenタスクを使用します。https://blogs.oracle.com/rajeshthekkadath/entry/automation_using_ant_replace_function

于 2012-08-23T20:53:49.110 に答える