我一直在创建类,它负责从yml文件中获取所有设置。这个类看起来像这样:
public class TestsConfiguration extends Configuration {
public TestsConfiguration() {
this.sourceYAML = this.getClass().getResourceAsStream("test.yml");
}
public TestsConfiguration(File sourceYAML) throws FileNotFoundException {
this.sourceYAML = new FileInputStream(sourceYAML);
}
public class PropertiesContainer {
@JsonProperty
private String test;
public String getTest() {
return test;
}
public void setTest(String test) {
this.test = test;
}
}
private final ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
private final InputStream sourceYAML;
public PropertiesContainer getProperties() throws IOException {
final ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
return mapper.readValue(sourceYAML, PropertiesContainer.class);
}
}
但是我在 mapper.readValue(...)方法中得到了例外
com.fasterxml.jackson.databind.JsonMappingException:由于输入结束而没有要映射的内容
这是我的yml文件:
test: "hello"
如何解决此问题?
答案 0 :(得分:1)
看起来多次调用getProperties()
方法。
在构造函数中初始化的输入流字段。它有一个文件指针变量,每次读取时都会更新。输入流到达文件末尾时发生异常。
尝试将YAML解析移动到构造函数。