Ich baue eine Web-Anwendung basierend auf Maven Multi-Module. So ist mein Projektstruktur wie folgt aus:Java WebApp kann keine .properties von jar laden
/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
Ich habe verschiedene Eigenschaften („i18n_en.properties“) für L18N in jedem Modul, lade ich die Eigenschaften in Code-Datei und die Informationen zu erhalten. Es scheint gut zu laufen im Single-Modul-Test.
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);
}
Wenn ich aber Tomcat mit IDEA gestartet habe, lädt das Programm nur die Eigenschaften in webapp! Einfach die Eigenschaften von "Module1" nicht finden!
Ich denke, es ist das Problem des Ladens von Eigenschaften von innner Glas. Für das bereitgestellte Verzeichnis ist wie folgt:
/WEB-INF
/classes
/conf/i18n_en.properties (from webapp)
/lib
/Module1.jar (has it's own properties in it)
Ich war wirklich verwirrt. Ich habe lange nach allen Dingen gesucht, die mir verwandt sind, und ich habe eine ähnliche Sache gefunden, aber ich kann das Problem nicht lösen. Ich denke, ich habe getan, was sie gesagt haben. Java WebApp: Loading resource from .jar located in WEB-INF
Ich weiß nicht, wo das Problem ist, es muss einige Möglichkeiten geben, um die Eigenschaften innere Glas laden. Jeder weiß etwas, bitte helfen Sie mir, vielen Dank ~
Was Wert Ihrer base_name Variable ist? –
müssen Sie '/' vor BASE_NAME hinzufügen –
ja, ich habe versucht, was Sie gesagt haben. wie "/ conf/i18n_properties", "conf/i18n_properties". Es kann nur nicht die Datei finden, wenn es in das Glas verpackt ist. @ JekinKalariya – Alvin