29

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

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

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

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

-Dfolder=Dev

ここで、Apache TomcatでWebアプリケーションをテストしたいので、フォルダーVM引数を設定/送信する必要があります。

どうすればいいですか?

setenv.shを使用する必要がありますか?どのように?。誰かが私と例を教えてもらえますか?

私の英語をありがとうそしてごめんなさい

4

3 に答える 3

29

使用している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.propertiesと、db接続設定(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" />

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

<context:property-placeholder location="classpath*:*.properties" />
于 2012-09-13T13:50:18.183 に答える
19

$ 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
于 2015-12-16T12:15:47.750 に答える
5

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

set CATALINA_OPTS="-DyourVariableName=yourValue"

それで全部です。それはかなりきれいに見えるので、私はこの方法が好きでした

于 2016-08-23T14:09:56.990 に答える