web-dev-qa-db-ja.com

VM引数をApache Tomcatに渡す

VM「-Dfolder」という引数を持つwebProjectがあります

次のようにapplicationContextでその引数を使用します。

<value>file:${FNET_CORE_CONFIG}/conf/${folder}/jdbc.properties</value>

Eclipseでは、テストのために、「実行構成」を使用して次のような値を設定します。

-Dfolder=Dev

ここで、Apache Tomcatでwebappをテストしたいので、フォルダーを設定/送信する必要がありますVM Argument。

どうやって?

Setenv.shを使用する必要がありますか?どうやって?。誰かが私と例を与えることができますか?

私の英語をありがとう

23
Mark Comix

どのバージョンのTomcatを使用しているのかわかりませんが、catalina.shファイルのTomcat 7では変数CATALINA_OPTSを指定でき、この変数はjvmに渡されます。

しかし、環境変数を設定することは、目標を達成するための最良の方法ではないかもしれません。おそらく、個別の「app.properties」ファイルを作成し、次のようにapplicationContextに含めるのが最善でしょう。

<context:property-placeholder location="classpath*:app.properties" />

Catalina.shのソリューション

#   CATALINA_OPTS   (Optional) Java runtime options used when the "start",
#                   "run" or "debug" command is executed.
#                   Include here and not in Java_OPTS all options, that should
#                   only be used by Tomcat itself, not by the stop process,
#                   the version command etc.
#                   Examples are heap size, GC logging, JMX ports etc.

例:

CATALINA_OPTS = "-Dfolder = Dev"

編集:

windowsの場合は、set CATALINA_OPTS="-Dfolder=Dev"

編集:

Spring構成では、$ {propertyname}のようにシステムプロパティを使用できます。また、プロパティ定義とcontext:property-placeholder、およびそのファイルプロパティで定義されているすべてのプロパティも、configで使用可能になります。

たとえば、ベースセットプロパティ:config.properties、およびデータベース接続設定(DEV.properties、UAT.properties、PROD.properties)を持つファイルのセットがあります。それでは、環境ごとに異なるプロパティをどのように含めることができますか?さまざまな方法で実行できます。たとえば、catalina.batでシステムプロパティを設定します。

set CATALINA_OPTS="-Dbuild=DEV"

およびapplicationConfig.xmlで

<context:property-placeholder location="classpath*:${build}.properties, classpath*:config.properties" />

または、異なるビルド構成を作成し、各WARビルドに1つのプロパティ(DEV、UAT、PROD)のみを最終的なWARに含めることができます。 applicationConfigで次のように設定します。

<context:property-placeholder location="classpath*:*.properties" />
27
user1516873

$ CATALINA_HOMEに移動してsetenv.shファイルにパラメータを値とともに追加します。複数のパラメーターをまとめたい場合は、spaceを使用してパラメーターを区切ります

例えば。

cd /opt/Tomcat/bin/ 
Sudo nano setenv.sh 

行を編集する

CATALINA_OPTS="${CATALINA_OPTS}" 

CATALINA_OPTS="${CATALINA_OPTS} -Dparam=value -Dparam2=value2" 

tomcatを再起動します。

service Tomcat restart

これで、実行時にTomcatに渡された引数を確認できるようになります。

ps aux | grep Tomcat
14
biniam

Catalina.batおよびstartup.batと同じディレクトリに(catalina.batで推奨されているように)setenv.batファイルを生成し、.batの内容を配置することにより、Windowsで動作するようにしました。

set CATALINA_OPTS="-DyourVariableName=yourValue"

それで全部です。きれいに見えるのでこの方法が好きでした

4
Osmar