当前位置: 首页 > 面试题库 >

在Singleton类中加载属性文件

王弘和
2023-03-14
问题内容

我已经看过几次,并尝试了一些建议,但都没有成功(到目前为止)。我在以下路径上有一个maven项目和属性文件:

[project]/src/main/reources/META_INF/testing.properties

我正在尝试将其加载到Singleton类中以通过键访问属性

public class TestDataProperties {

    private static TestDataProperties instance = null;
    private Properties properties;


    protected TestDataProperties() throws IOException{

        properties = new Properties();
        properties.load(getClass().getResourceAsStream("testing.properties"));

    }

    public static TestDataProperties getInstance() {
        if(instance == null) {
            try {
                instance = new TestDataProperties();
            } catch (IOException ioe) {
                ioe.printStackTrace();
            }
        }
        return instance;
    }

    public String getValue(String key) {
        return properties.getProperty(key);
    }

}

但是我在运行时遇到了NullPointerError的问题。我已经完成了所有可以想到的操作,但是无法找到/加载文件。

有任何想法吗?

堆栈跟踪:

Exception in thread "main" java.lang.NullPointerException
    at java.util.Properties$LineReader.readLine(Properties.java:434)
    at java.util.Properties.load0(Properties.java:353)
    at java.util.Properties.load(Properties.java:341)

问题答案:

您应该实例化您的Properties对象。另外,您还应该使用以下路径加载资源文件/META-INF

properties = new Properties();
properties.load(getClass().getResourceAsStream("/META-INF/testing.properties"));


 类似资料:
  • 我在尝试添加

  • 问题内容: 我正在尝试执行JUnit测试期间从我的类路径中加载sample.properties,它在类路径中找不到文件。如果编写Java Main类,则可以很好地加载文件。我正在使用以下ant任务执行我的JUnit。 JUnit: 输出: 问题答案: 您需要添加到。 更新 :根据评论中的交流,事实证明不是问题所在。而是使用了错误的类加载器。 根据加载类的类加载器查找资源的路径。事实证明,该类是由

  • 我有两个项目,CarpoolDB和拼车。 CarpoolDB:包含后端的东西 拼车应用程序上下文。xml server.properties 我做了一罐carpoolDB和地方拼车应用程序 拼车:包含UI东西和后端联系人carpoolDB jar,并具有 carpool-application-context1.xml spring-servlet.xml 拼车。性质 现在,我有一个类com.on

  • 我无法加载位于jar (project.service.jar)中的db.properties,它被war文件(project-web.war)引用。输出war将jar放在we b-INF/lib/project . service . jar中。rest war也使用jar,它使用jar中的一些服务。当战争开始时,我无法加载位于服务的jar文件中的db.properties。prop文件具有要在

  • 问题内容: 我需要读取埋在我的包结构中的属性文件。 我已经尝试了一切,但无法解决。 最后,我的代码将在servlet容器中运行,但是我不想依赖任何容器。我写了JUnit测试用例,它需要在两个方面都能工作。 问题答案: 从包中的类加载属性时,可以使用 (添加所有必要的异常处理)。 如果你的类不在该程序包中,则需要稍微不同地获取InputStream: 相对路径(那些没有前导“/”)中该资源将相对于它

  • 问题内容: 我在程序中需要一个配置文件来存储一些信息,我看到了一些属性文件的示例,并试图使用它们,但是每当在NetBeans上尝试第二行时,我都会得到“ Package sortConfig不存在”,“ >预期”和“类型非法开始”。 问题是我已经看到大约10个示例都以相同的方式执行此操作,而我不知道发生了什么。 任何帮助,将不胜感激 我的.java类和我的属性文件位于src的同一包文件夹中 问题答