Java JAXB在尝试按给定顺序进行Marshall时给出异常

Java JAXB在尝试按给定顺序进行Marshall时给出异常,java,exception,jaxb,Java,Exception,Jaxb,我有一个类似的代码 @XmlRootElement(name = "root") @XmlType(propOrder={"param1", "param2""}) public class Demo{ public Demo() { } private int param1; private String param2; private String param3; public int getparam1() { return param1; } @XmlElement pu

我有一个类似的代码

@XmlRootElement(name = "root")
@XmlType(propOrder={"param1", "param2""})
public class Demo{
public Demo() {
}
private int param1;
private String param2;
private String param3;



public int getparam1() {
    return param1;
}

@XmlElement
public void setparam1(int param1) {
    this.param1= param1;
}

//other setters and getters here except for param3
}
但它给了我

      n4 counts of IllegalAnnotationExceptions
尝试运行程序时出现异常(我在原始代码中总共有6个参数,只有4个用于Marshall)


原因是什么?

在@XmlType注释中有一个错误:

@XmlType(propOrder={"param1", "param2","param3"})
如果这不能解决问题,请尝试检查比例器中属性的名称,或直接使用字段访问器类型:

@XmlRootElement(name = "root")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(propOrder={"param1", "param2", "param3"})
public class Demo{

public Demo() {
}

private int param1;
private String param2;
private String param3;

//getter & setters without annotations

}

是的,但我只想在XML格式的程序中从3个参数中提取2个参数。因此,给定@xmlacessortype(xmlacesstype.FIELD)将使所有参数都显示在XML右侧?@xmlacessortype(xmlacesstype.NONE),然后@xmlement仅显示在您想要作为输出的字段上。