Java JAXB:您必须指定要包含的每个字段吗?

Java JAXB:您必须指定要包含的每个字段吗?,java,jaxb,marshalling,Java,Jaxb,Marshalling,我有一个我想处理的类,这个类用@XmlRootElement注释。当我整理它的一个实例时,JAXB创建了一个XML,其中除了根元素之外没有任何内容。当我手动注释类的每个字段时,所有字段都包括在内。似乎必须对每个字段进行注释,才能将其包含在输出中。有人能证实这一点吗?如果是这样的话,为什么当您必须配置每个字段时,JAXB就被称为configurationbyexception 不起作用: @XmlRootElement public class Person { private int n

我有一个我想处理的类,这个类用
@XmlRootElement
注释。当我整理它的一个实例时,
JAXB
创建了一个XML,其中除了根元素之外没有任何内容。当我手动注释类的每个字段时,所有字段都包括在内。似乎必须对每个字段进行注释,才能将其包含在输出中。有人能证实这一点吗?如果是这样的话,为什么当您必须配置每个字段时,
JAXB
就被称为
configurationbyexception

不起作用:

@XmlRootElement
public class Person {
    private int name;
    private String email;
    private String tel;
    //constructor getters/setters
}
产生

下面的示例包括输出中的所有字段

@XmlRootElement
public class Person {
    @XmlElement private int name;
    @XmlElement private String email;
    @XmlElement private String tel;
    //constructor getters/setters
}
实现根本不需要任何注释:

我怀疑你的接受者/接受者组合有问题。您需要确保它们如下所示:

public int getName() {
    return name;
}

public void setName(int name) {
    this.name = name;
}

更新
我显然是深夜编码的受害者。生成时 getters/setters我只选择getters,而JAXB不喜欢它 全部

默认情况下,JAXB不会将只有getter的属性作为映射处理。仅使用getter,您就需要使用
@xmlement
进行注释

@XmlElement
public int getName() {
    return name;
}

你能发布这个类的代码吗?@MaxFichtelmann更新了!我无法复制你的问题。你能看看并说出你的不同之处吗?它打印
a@b11234
我显然是深夜编码的受害者。在生成getter/setter时,我只选择了getter,而JAXB根本不喜欢它。