プロパティファイルから設定パラメータを読み込むTomcatデプロイメントを作成するには、どのような方法がありますか?プロパティファイルを使用してDB接続情報をロードするようにTomcatを設定する
WARファイルを配信し、クライアントが特定のディレクトリにプロパティファイルを作成または編集するだけで済むように指定するとよいでしょう。これはやや日常的なやり方ですか?これよりも良いアプローチがありますか?
プロパティファイルから設定パラメータを読み込むTomcatデプロイメントを作成するには、どのような方法がありますか?プロパティファイルを使用してDB接続情報をロードするようにTomcatを設定する
WARファイルを配信し、クライアントが特定のディレクトリにプロパティファイルを作成または編集するだけで済むように指定するとよいでしょう。これはやや日常的なやり方ですか?これよりも良いアプローチがありますか?
WARと、tomcat/conf/Catalina/localhost
ディレクトリに配置されたContext XMLファイルを提供することでWebアプリケーションを配布し、任意のパスからWebアプリケーションを読み込むことができます。参考資料hereがあります。これは、次のような利点を提供します。
本当にプロパティファイルが必要な場合は、文脈XでMLファイルを開き、ServletContextListenerのパラメータを読み取り、プロパティファイルを読み込みます。
我々はこれを処理する方法:
で構成された接続プールへのリンクResourceLinkを持っているのcontext.xmlファイルが含まれています。 xmlの接続情報を直接、しかし時間がたつにつれて返済しなければなりません。開発サーバーは、開発を指すGlobalNamingResourcesとテストサーバーがテストなどを指すようにセットアップされます。次に、同じWARファイルを何も編集せずに各サーバーにコピーできます。
これはプロパティファイルを使用していませんが、同じ目標を達成していると思います。ユーザー/顧客がデータベース接続情報を設定できるようにします。 GlobalNamingResourceの
例:WARファイル内のcontext.xmlの
<Resource name="jdbc/dbconnection" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1546:SID"
username="scott" password="tiger" maxActive="8" maxIdle="4"
validationQuery="select 1 from dual"
testOnBorrow="true"/>
例:
<Context path="/MyWebApp" docBase="MyWebApp" debug="5" reloadable="true">
<ResourceLink name="jdbc/dbconnection" global="jdbc/dbconnection"
type="javax.sql.DataSource"/>
</Context>
それは戦争ゾーンの外に設定を保存することをお勧めします。 WARでは、プロパティファイルを探すデフォルトの場所があります。デフォルトが機能しない場合は、conf/Catalina/[host]ディレクトリのcontext fragmentで定義されたJVMパラメータまたはコンテキストパラメータを使用して場所を指定できます。たとえば、
<Context docBase="/server/app.war"
swallowOutput="true" unpackWAR="false" useNaming="false">
<Parameter name="config-file" value="/config/db.properties" override="true" />
</Context>