Я получаю
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: невозможно создать экземпляр com.ykb.frd.fraudcore.configuration.DatabaseConfiguration
, проблема: нуль
исключение при чтении файла YAML. И приложение пытается снова и снова, пока не произойдет сбой из-за исключения переполнения стека
Файл YAML:
db:
url: blablablaurl
user: blabla
password: blabla
Java:
@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();
Спасибо.