Aeonbits 所有者找不到属性和空参数

问题描述

我正在使用来自 http://owner.aeonbits.org/docs/usage/ 的 aeonbits 的 Owner。我试图遵循这个简单的例子。好像可以加载示例中的42等认值;然而,其他一切都是空的。这提示我它找不到文件

我拥有的代码是完全复制和粘贴的。我的结构是否正确?如果没有,我该如何更正它以便正确加载属性文件和参数?根据文档,如果它为空,则无法定位文件位置。我相信只要类的位置位于同一位置,这应该可以工作。

项目结构:

Screenshot of Hierarchy description

//ClientInstance.java
public class ClientInstance {
    public static void main(String[] args) {
        String token = "abcxyz";

        ServerConfig cfg = ConfigFactory.create(ServerConfig.class);
        try{
            System.out.println("Server " + cfg.hostname() + ":" + cfg.port() +
                    " will run " + cfg.maxThreads());
        }catch(Exception e){
            e.printstacktrace();
        }
}
//ServerConfig.java
package com.github.advra.roxas;

import org.aeonbits.owner.Config;

public interface ServerConfig extends Config {
    int port();
    String hostname();
    @DefaultValue("42")
    int maxThreads();
}
//ServerConfig.peroperties
port=80
hostname=foobar.com
maxThreads=100

输出

java.lang.NullPointerException
    at com.sun.proxy.$Proxy3.port(UnkNown Source)
    at com.github.advra.roxas.ClientInstance.main(ClientInstance.java:20)

编辑:已解决

必须做两件事。在 ServerConfig.java 应用程序中的 interface ServerConfig extends config 行上方,我必须添加

@Config.sources({"classpath:ServerConfig.properties"})

那么 ServerConfig.properties 必须放在资源文件夹中才能工作。

我以前从未使用过属性,所以我不确定这是否正确。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...