gpt4 book ai didi

java - GWT 项目在开发模式下正确读取属性文件,但在部署时找不到它

转载 作者:行者123 更新时间:2023-12-01 12:42:44 25 4
gpt4 key购买 nike

所以我有 2 个引用我的 GWT 项目的 jar 文件,两者都以这种方式读取属性文件:

String PROPS_FILE = "Props.properties"
Properties propFile = new Properties();
propFile.load(new FileInputStream(PROPS_FILE));

这两个 jar 文件都是用 java 编码并导出为 JAR 库。

属性文件位于开发模式下的 war 文件夹中。

它在开发模式下工作正常,但是当我在部署它时尝试它时,它遇到了错误

java.io.FileNotFoundException:Props.properties(没有这样的文件或目录)。

是否有办法在不修改 JAR 的情况下完成这项工作?谢谢。

文件夹结构如下:

war
-WEB-INF
-Props.properties
-Props2.properties

将项目编译为.war文件并使用glassfish进行部署后,文件夹结构是这样的:

(路径等...)/applications/SAMPLEGWTAPP/

  • -WEB-INF
  • -Props.properties
  • -Props2.properties

最佳答案

选项 1:当您在 prod 模式下运行 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 中的类路径,您必须像此处提到的那样执行 Adding a directory to tomcat classpath

关于java - GWT 项目在开发模式下正确读取属性文件,但在部署时找不到它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24948270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com