0

Tomcat で実行されているサーブレット ベースのアプリケーションに Derby データベースを組み込みたいと考えています。

この目的のために、データベース ファイルをディスク上に永続化する必要があります。デプロイされた Web アプリケーションのサブフォルダーに配置することをお勧めします (その後、 を使用して変換できますgetServletContext().getRealPath())。

サーブレットが安全に書き込むことができる、許容できるアプリケーション関連の場所に関する適切なプラクティスはありますか? そのような推奨事項が存在しない場合、Tomcat 固有のグッド プラクティスは何でしょうか?

この議論は、で書くことを除外しているようWebContentです。一部のチュートリアルが指摘しているように、サブフォルダーに書き込む必要がありCATALINA_HOMEますか (ただし、ハックのように感じます)。

4

2 に答える 2

1

アプリケーションをインストールするとき、データが/usr/bin(またはC:/Program Files) のどこかに保存されているのを確認しますか?それとも、残りのデータが存在するホーム ディレクトリに保存されているのを確認しますか?

アプリケーション バイナリ (決して変更されない) を、それが操作するデータと結合しないでください。アプリケーションを削除するときにデータを失いたくないし、その逆も同様です。ユーザーのホーム ディレクトリまたはそれ以上 (インストール時に選択されたフォルダー) の方がはるかに優れています。

于 2012-12-07T22:56:27.293 に答える
1

ファイルシステムの永続化の場所を、おそらくプロパティ (つまり ) として、プログラムへの明示的なパラメーターにする必要があります-DdataStoreLocation=somepath。一般に、Java アプリケーションはファイルシステムにアクセスできる場合とできない場合があります。WAR 内から実行されている場合もあれば、ネットワークからロードされていてクラスパス相対ファイルシステムを持っていない場合もあります。

これを明示的な要件にし、ユーザーとのアプリの契約の一部にすることが、使用するファイル システムがあることを保証する唯一の方法であり、使用するパス名を取得する方法です。

于 2012-12-08T04:24:00.730 に答える