因此,我有2个引用到我的GWT项目的jar文件,都以这种方式读取属性文件:
String PROPS_FILE = "Props.properties"
Properties propFile = new Properties();
propFile.load(new FileInputStream(PROPS_FILE));
这两个jar文件都用Java编码,并作为JAR库导出。
属性文件位于dev模式下的war文件夹中。
它可以在开发人员模式下正常工作,但是当我在部署它时尝试时遇到错误
java.io.FileNotFoundException:Props.properties(无此类文件或目录)。
无论如何,是否可以在不修改JAR的情况下进行这项工作? 谢谢。
文件夹结构如下:
战争
-WEB-INF
-Props.properties
-Props2.properties
将项目编译为.war文件并使用glassfish进行部署后,文件夹结构如下所示:
(路径ETC ...)/应用程序/ SAMPLEGWTAPP /
选项1:在生产模式下运行GWT时,默认情况下,WAR的WEB-INF/classes
位于其类路径中。 尝试将属性文件直接放在WEB-INF / classes下。 如果您的服务器仍然找不到属性文件,请使用以下代码:
InputStream is = this.getClass().getClassLoader().getResourceAsStream("Props.properties");
Properties myProps = new Properties();
myprops.load(is);
选项2:外部化位置并将其放置在项目结构之外-例如,在文件系统上某个properties
目录下。 然后,您可以将此properties
目录添加到IDE中的类路径中(在Eclipse中,可以通过“构建路径”>“添加变量”来完成此操作),还可以在服务器中运行它时将其添加到类路径中-有关如何操作的信息,请参阅服务器的文档添加一个类路径。 例如,将目录添加到Tomcat的classpath中,你必须做像这里所说的添加目录到Tomcat的classpath