2017-01-13 40 views
0

我想加载一个yaml文件&将它存储在Config.java中。Yaml文件的值不使用java中的jackson加载

这里是我的YAML文件:(规模大得多的我给一个简化版本)

--- 
application: 
    admin: 
    jobInterValTime: 1440 
    customer: lc 
system: 
    mongo: 
    host: localhost 
    port: 27017 
    dbName: LC_Test 
    collections: 
     groupsCollection: groups 
     membershipCollection: memberships 
     personsCollection: persons 

这里是Config.java:

public class Config { 
    private Application application; 
    private System system; 
    //Getter setter 
} 

Application.java

public class Application { 
    private Admin admin;  
    //Getter Setter 
} 

Admin.java

public class Admin { 
    private String jobInterValTime; 
    private String customer; 
    //Getter Setter 
} 

System.java

public class System { 

    private Mongo mongo;  
    //Getter Setter 
} 

Mongo.java

public class Mongo { 
    private String host; 
    private String port; 
    private String dbName; 
    private Map<String, String> collections; 
    //Getter Setter 
} 

但是这里面Config.javaapplication & system对象来null.No异常发生。任何人都可以帮忙吗?

这是我写的。

Config config = null; 
ObjectMapper objectMapper = new ObjectMapper(new YAMLFactory()); 
try{ 
    config = objectMapper.readValue(new File("src/test/java/resources/test1.yaml"), Config.class); 
    //System.out.println(application.getAdmin().getCustomer()); 
    // System.out.println(unidataConfig.getApplication().getAdmin().getCustomer()); 

} catch(Exception e) { 
    e.printStackTrace(); 
} 

回答

0

我解决了这个问题。这个错误非常愚蠢。在一个setter方法中,我写了这样的:var1 = var1而不是this.var1 = var1

0

我不知道这里的根本原因,代码看起来不错。但您可以尝试的一件事是首先阅读MapJsonNode的内容,然后查看结构的外观。这可能是不匹配的。