私はTomcat 7で単純なWebアプリケーションを試しています。プロパティファイルをロードするindex.htmlにjavascript呼び出しがあります。以下のコードを使用して get 呼び出しを行います。
var req = new XMLHttpRequest();
req.open("GET", "xyz.properties");
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
}
}
}
req.send();
次のユースケースを試しました。
- プロパティ ファイルを war ファイル内、つまり WEB-INF の外側に直接保持 -これは機能します。
- WEB-INF/classes の下に保管 -機能しませんでした。
- jar にラップし、WEB-INF/lib の下に保管しました -動作しませんでした。
- jar を Tomcat/lib の下に置きます - 動作しませんでした。
私が理解している限り、すべてのリソース/クラス リクエストは WebAppClassloader を通過し、次の順序で物事を調べます。
- JVM ブートストラップ
- システムローダー
- web-inf/クラス
- web-inf/lib
- 共有/ライブラリ
私の実際のアプリケーションでは、組み込みのTomcatを使用しています。目標は、jarを介してプロパティファイルを外部化することです(戦争の外側)。したがって、上記のテストは、Tomcat の基本的なリソースの読み込みを理解するためのものです。
上記のテストで何が欠けているのか、誰かが光を当てることができますか? 通常、取得リクエストがクラスローダーを通過する場合、すべての場合にファイルを見つけることができるはずではありません。