java - 如何从 java 中的 web 服务获取属性文件的上下文路径?

标签 java web-services file contextpath

我正在尝试从我的应用程序中读取属性文件的上下文路径,

properties.load(this.getClass().getResourceAsStream(path));



import java.util.Properties;

public class test1 {

    public String getValues()
    {
        PropertiesFileReader fileReader = new PropertiesFileReader();

        Properties prop = fileReader.getProp("/messages/AttachFile.properties");

        String out = prop.getProperty("FILE_NAME");

        return out;
    }
}

这在属性文件位于 WEB-INF -> classes -> messages -> myfile 下时有效 但是当我将这个文件移动到其他文件夹时,比如 WEB-INF -> messages -> myfile 它似乎没有得到路径......

编辑:我没有使用 servlets...

最佳答案

如果失败是因为新路径不是类路径的一部分,而 Class#getResourceAsStream() 从类路径加载资源。 /WEB-INF/classes 默认是 Servlet API 规范中指定的类路径的一部分,这就是它起作用的原因。我建议将其保留在类路径中或将新路径 /WEB-INF/resources 添加到类路径中。

如果您使用的是像 Eclipse 这样的 IDE,那么您可以通过将它作为 Source Folder 添加到项目的构建路径中(这将在构建过程中将其移回 /WEB -INF/classes 无论如何)。或者,您也可以只在 Java 源代码根目录中创建一个 resources 包,然后将文件放在那里。它也将成为类路径的一部分。

关于java - 如何从 java 中的 web 服务获取属性文件的上下文路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5282667/

相关文章:

java - 如何使用 Eclipse 选择 jtable 行

java - 我必须在哪里初始化处理程序?

具有泛型类的 JavaFX 自定义 ComboBox

linux - 用于匹配列并将新列从文件添加到表中的 shell 脚本

java - 写在文本文件上的文本或字符串与前一个词重叠。它应该逐行写每个字

java - 这个正则表达式有什么作用?

php - 如何将 arrayOfString 数据类型放入 php 关联数组中

c# - 来自 c# asmx 的 JSON 返回转义字符串格式而不是 JSON 对象

c++ - 为什么我的程序中的第二个 while 循环在它前面有一个 while 循环时不起作用?

java - 没有参数的 WSDL 生成方法