gpt4 book ai didi

java - 在 play 2.0 中加载 initial-data.yml 时出现问题

转载 作者:搜寻专家 更新时间:2023-11-01 01:45:13 25 4
gpt4 key购买 nike

我正在尝试在 play1.2.4 中移植到 YABE 以玩 2.0.4 Java。为此,我创建了一个 initial-data.yml 并尝试使用 Global.java 加载它

#Usersusers:    - !!models.User        email:      bob@gmail.com        password:   secret        fullname:   Bob        isAdmin:    true#Postsposts:    - !!models.Post        id:         1        title:      About the model layer        postedAt:   2009-06-14        author:                 - !!models.User                email: bob@gmail.com        content:    >                    The model has a central position in a Play! application. Cut....   

My Global.java is below

public void onStart(Application app) {
InitialData.insert(app);
}

static class InitialData {
public static void insert(Application app) {
if(Ebean.find(User.class).findRowCount() == 0) {
Map<String, List<Object>> all = (Map<String, List<Object>>)Yaml.load("initial-data.yml");
Ebean.save(all.get("users"));
Ebean.save(all.get("posts"));
Ebean.save(all.get("comments"));
}
}
}

加载时出现以下错误

构造函数异常:空;无法为 tag:yaml.org,2002:models.Post 构建 java 对象; exception=无法为 JavaBean=models.Post@1 创建 property=author;没有为类模型找到具有 3 个参数的合适构造函数。用户

org.yaml.snakeyaml.constructor.ConstructorException: null; Can't construct a java object for tag:yaml.org,2002:models.Post; exception=Cannot create property=author for JavaBean=models.Post@1; No suitable constructor with 3 arguments found for class models.User     org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.construct(Constructor.java:333)     org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:183)     org.yaml.snakeyaml.constructor.BaseConstructor.constructSequenceStep2(BaseConstructor.java:277)     org.yaml.snakeyaml.constructor.BaseConstructor.constructSequence(BaseConstructor.java:248)     org.yaml.snakeyaml.constructor.SafeConstructor$ConstructYamlSeq.construct(SafeConstructor.java:440)     org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:183)     org.yaml.snakeyaml.constructor.BaseConstructor.constructMapping2ndStep(BaseConstructor.java:326)     org.yaml.snakeyaml.constructor.SafeConstructor.constructMapping2ndStep(SafeConstructor.java:143)     org.yaml.snakeyaml.constructor.BaseConstructor.constructMapping(BaseConstructor.java:307)     org.yaml.snakeyaml.constructor.SafeConstructor$ConstructYamlMap.construct(SafeConstructor.java:459)     org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:183)     org.yaml.snakeyaml.constructor.BaseConstructor.constructDocument(BaseConstructor.java:142)     org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:128)     org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:480)     org.yaml.snakeyaml.Yaml.load(Yaml.java:411)

知道为什么会这样吗?

最佳答案

Manuel,感谢您的帮助。

当我稍微修改 YAML 使其工作时,我只是删除了“model.class”前面的“-”

#Usersusers:    - !!models.User        email:      bob@gmail.com        password:   secret        fullname:   Bob        isAdmin:    true#Postsposts:    - !!models.Post        id:         1        title:      About the model layer        postedAt:   2009-06-14        author: !!models.User                email: bob@gmail.com        content:    >                    The model has a central position in a Play! application. Cut....   

知道“-”代表什么吗?

关于java - 在 play 2.0 中加载 initial-data.yml 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13059670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com