1. ホーム
  2. tomcat

Tomcatの起動時の設定で、システムプロパティを指定するにはどうしたらいいですか?

2023-09-05 01:50:42

質問

Tomcatにシステムプロパティを指定するには、-Dパラメータで引数を渡して、例えば"のように指定することができると理解しています。 -Dmy.prop=value といった具合です。

context.xml ファイルまたは他の tomcat 構成ファイルでプロパティ値を指定することによって、これを行うよりきれいな方法があるかどうか疑問に思っています。なぜなら、第一に、プロパティを追跡しやすく、第二に、複数のコンテキストを実行しており、-D パラメータを通じてコンテキスト固有のプロパティを指定する方法がわからないからです。

私は Tomcat バージョン 5.5 を使用しています。

どのように解決するのですか?

(更新: この回答を削除できるのであれば削除したいのですが、承認されてしまったので削除はできません。より良いガイダンスを提供し、元の回答で説明した不適切な方法を使用しないように、説明を更新しています)。

これらのパラメータは、context.xml などのコンテキストまたは環境パラメータを介して指定できます。 このページの "コンテキスト パラメータおよび "環境エントリというタイトルのセクションを参照してください。

http://tomcat.apache.org/tomcat-5.5-doc/config/context.html

netjeff が指摘するように、これらの値は Context.lookup(String) メソッドを介して利用可能であり、System パラメータとして利用できるわけではありません。

これらの値を指定する別の方法は、デプロイする Web アプリケーションの web.xml ファイル内で変数を定義することです (以下を参照)。Robert Lo Giacco が指摘するように、デプロイされた成果物は環境固有であるべきではないので、これは一般に悪い習慣と考えられています。しかし、本当にそうしたいのであれば、以下に設定スニペットを示します。

<env-entry>
    <env-entry-name>SMTP_PASSWORD</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>abc123ftw</env-entry-value>
</env-entry>