JAXB Marshal StringProperty JavaFx

时间:2016-12-19 11:15:11

标签: javafx binding jaxb

我正在研究用于处理测试用例的软件。我将一个测试用例存储在磁盘上的xml文件中。

现在,因为它的JavaFx我需要我的模型的StringProperty类来绑定我的数据。

现在我遇到了一个莫名其妙的问题,我可以成功地将xml文件解组到我的模型中,但是我无法将模型编组到xml文件中,而我得不到Jaxb组件的响应。他只是没有创建文件。

让我们看看我得到了什么:

Testcase.java(模型)

@XmlRootElement(name = "Testcase")
@XmlAccessorType(XmlAccessType.PROPERTY)
public class Testcase {

private StringProperty Guid;
@XmlElement(name="GUID")
public String getGuid() {
    return guidProperty().get();
}
private StringProperty guidProperty() {
    if (Guid == null)
        Guid = new SimpleStringProperty(this, "Guid");
    return Guid;
}
public void setGuid(String guid) {
    this.guidProperty().set(guid);
}

WrappingFactory.java(Marshall) - DOESN'工作?

 public boolean MapModelToXmlFile(T model, File destination) {

    try {
        JAXBContext jaxbContext = JAXBContext.newInstance(typeParameterClass);
        Marshaller jaxbMarshaller = jaxbContext.createMarshaller();

        // output pretty printed
        jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

        jaxbMarshaller.marshal(model, destination);

    } catch (Exception e) {

    }
    return true;
}

WrappingFactory.java(Unmarshall) - 工作量很大

    private T MapXmlFileToModel(String path) {

    File file = new File(path);

    try {
        JAXBContext jaxbContext = JAXBContext.newInstance(typeParameterClass);
        Unmarshaller jaxbUnmarshaller =  jaxbContext.createUnmarshaller();
        return (T) jaxbUnmarshaller.unmarshal(file);

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

    return null;
}

This picture presents the model after unmarshall.

我读了很多关于错误的吸气剂和制定者,但我找不到任何错误..

当我使用普通的String或布尔属性时,marshaller工作正常。

请帮帮我..

提前致谢。

0 个答案:

没有答案