GWT Project在开发人员模式下可以正确读取属性文件,但是在部署它时找不到它

问题描述 投票:0回答:1

因此,我有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 /

  • -WEB-INF
  • -Props.properties
  • -Props2.properties
java eclipse gwt
1个回答
1
投票

选项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

© www.soinside.com 2019 - 2024. All rights reserved.