2

アプリケーションサーバーとしてtomcatを使用しているJavaWebアプリケーションでは、アプリケーションがデプロイ/再デプロイされるときに、特定のプロパティに異なる値を渡す方法に興味があります。
私が知っているいくつかの方法があります:

  1. 1つは、setenv.shファイルで設定されたTomcatに渡されるJVMオプションを使用する方法です。私の知る限り、再デプロイのたびにサーバーを再起動する必要があります。
  2. プロパティファイルでプロパティ値を指定します。同じバージョンのアプリケーションを再デプロイする前に、ファイルに手動で設定し、アプリケーションを再構築する必要があります。
  3. springを使用しているときに、applicationContext.xmlファイルで定義されているBeanのプロパティ値を指定します。ここでも、手動によるアプローチとアプリの再構築が必要です。
  4. 構成をデータベースに保存します。これには、そのような構成を格納するデータベースの接続プロパティを知っている必要があります。

アプリをデプロイ/再デプロイするたびに、IPアドレス、接続数、ポート番号などの特定のプロパティ変数を変更する場合、どのような戦略に従う必要がありますか?このようなプロパティ値をTomcatにデプロイされたWebアプリケーションに渡すための一般的に受け入れられている方法はありますか?プロパティ値をJVMオプションとして渡す場合、Tomcatサーバーを再起動する必要がありますか?

または、上記で言及していない展開パラメーターを構成するための他の一般的な方法はありますか?各デプロイメントの前に手動でプロパティを設定する(プロパティファイルを設定するなど)のではなく、プログラムで簡単に自動化できるプロセス(JVMオプションを渡すなど)を希望します。また、再デプロイする前に毎回同じバージョンを再構築する必要はありません。

4

1 に答える 1

1

JNDIは、まさにあなたが求めている目的のために発明されたと思います。

  • JVMオプションを変更する必要はありません
  • これらのオプションを変更するたびにTomcatを再起動する必要はありません
  • アプリを再構築する必要はありません
  • これらの値は、外部/プログラムで変更できます。Tomcatはそれを許可していると思いますが、そうでない場合でも、JMXを介して関連するプロパティを設定するsettableMBeanのようなものを書くのは難しいことではありません。
于 2012-10-24T11:35:49.393 に答える