为了账号安全,请及时绑定邮箱和手机立即绑定

在 Java 中读取 YAML 文件时堆栈溢出

在 Java 中读取 YAML 文件时堆栈溢出

心有法竹 2021-12-10 09:56:10
我正进入(状态com.fasterxml.jackson.databind.exc.InvalidDefinitionException:无法构造 的实例com.ykb.frd.fraudcore.configuration.DatabaseConfiguration,问题:空读取 YAML 文件时出现异常。并且应用程序一遍又一遍地尝试,直到由于堆栈溢出异常而崩溃YAML文件:db:  url: blablablaurl  user: blabla  password: blabla爪哇:@JsonIgnoreProperties(ignoreUnknown = true)public class DatabaseConfiguration {    private Database db;    private static DatabaseConfiguration single_instance = null;    private DatabaseConfiguration() {        db = readYml();    }    public static DatabaseConfiguration getInstance() {        if (single_instance == null)            single_instance = new DatabaseConfiguration();        return single_instance;    }    private final String YML_PATH = //path;    public Database getDb() {        return db;    }    /**     * Read from application.yml     * @return Database object     */    private Database readYml(){        ObjectMapper mapper = new ObjectMapper(new YAMLFactory());        try {            return mapper.readValue(new File(YML_PATH), DatabaseConfiguration.class).getDb();        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return null;    }}在readYml()函数内部,无限循环发生在mapper.readValue. 我猜它是关于单例对象的,但我不确定。调用数据库配置:private DatabaseConfiguration database = DatabaseConfiguration.getInstance();谢谢。
查看完整描述

1 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

该类不能是单例。Jackson 需要一个公共的默认构造函数。您应该使用不同的类(实际上是 DTO)来反序列化 YAML,然后将该对象传递给您的单身人士。



查看完整回答
反对 回复 2021-12-10
  • 1 回答
  • 0 关注
  • 221 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号