から.propertiesファイルをロードすることはできません。だから、私のプロジェクトの構造は、次のようなものです:のJava Webアプリケーションは、私はMavenのマルチモジュールに基づいてWebアプリケーションを構築してい瓶
/module1
/src/main/java
package/Module1.java
/src/main/resources
conf/i18n_en.properties
/webapp
/src/main/java
package/Web.java
/src/main/resources
conf/i18n_en.properties
/src/main/webapp
私はすべてのモジュールでI18Nについて異なる特性(「i18n_en.properties」)を持って、私はプロパティがコードでファイルをロードし、情報を取得します。単体テストでうまく走っているようです。
private ResourceBundle rb;
String filename = BASE_NAME + "_" + LANG + ".properties";
InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream(filename);
if(in == null) {
in = c.getResourceAsStream(filename);
}
if (in == null) {
in = c.getClassLoader().getResourceAsStream(filename);
}
if (in != null) {
rb = new PropertyResourceBundle(in);
}
しかし、私がIDEAを使ってtomcatを起動したとき、プログラムはwebappでプロパティをロードするだけです!ちょうど "Module1"のプロパティを見つけることができません!
は、私はそれが中わたjarファイルからロードする性質の問題だと思います。デプロイされたディレクトリの場合、次のようになります。
/WEB-INF
/classes
/conf/i18n_en.properties (from webapp)
/lib
/Module1.jar (has it's own properties in it)
私は本当に混乱しました。私は長い間、すべてのものを検索し、私はいくつかの類似点を見つけましたが、私は問題を解決できません。私は彼らが言ったことをやったと思います。問題がどこにあるか私にはわからないJava WebApp: Loading resource from .jar located in WEB-INF
、プロパティインナーjarファイルをロードするにはいくつかの方法が存在しなければなりません。誰もが、私を助けてください、jarファイルでは非常に〜
あなたのBASE_NAME変数の値は何ですか? –
あなたがBASE_NAME –
前に「/」を追加する必要があるはい、私はあなたが言ったことを試してみました。 "/ conf/i18n_properties"、 "conf/i18n_properties"のようなものです。それは、それが瓶にパッケージ化されている場合は、ファイルを見つけることができません。@ JekinKalariya – Alvin