我正进入(状态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,然后将该对象传递给您的单身人士。
添加回答
举报
0/150
提交
取消
