Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java XmlElementWrapper和附加的奇怪值_Java_Xml_Jaxb - Fatal编程技术网

Java XmlElementWrapper和附加的奇怪值

Java XmlElementWrapper和附加的奇怪值,java,xml,jaxb,Java,Xml,Jaxb,在我的代码中,我有一个bean: @XmlRootElement @XmlAccessorType(XmlAccessType.NONE) public class Data implements Serializable { @XmlAttribute private String _name; @XmlElementWrapper(name = "statuses") @XmlElement(name="status") private List<Boolean> _

在我的代码中,我有一个bean:

@XmlRootElement
@XmlAccessorType(XmlAccessType.NONE)
public class Data implements Serializable {

@XmlAttribute
private String _name;

@XmlElementWrapper(name = "statuses")
@XmlElement(name="status")
    private List<Boolean> _statuses;

public String getName() {
    return _name;
}

public void setName(String name) {
    _name = name;
}

    public List<Boolean> getStatuses() {
        return _statuses;
    }

    public void setStatuses(List<Boolean> statuses) {
        _statuses = statuses;
    }

 ....

}
我所期望的是:

<data name="data-test">
<statuses>
    <status>true</status>
    <status>true</status>
    <status>true</status>
    <status>true</status>
    <status>true</status>
    <status>true</status>
    <status>true</status>
    <status>true</status>
    <status>true</status>
    <status>true</status>
    <status>true</status>
    <status>true</status>
</statuses>
...
</data>
但我得到了:

<data name="data-test">
<statuses>
    <status>true</status>
    <status>true</status>
    <status>true</status>
    <status>true</status>
    <status>true</status>
    <status>true</status>
    <status>true</status>
    <status>true</status>
    <status>true</status>
    <status>true</status>
    <status>true</status>
    <status>true</status>
</statuses>

// strange repetition
<statuses>true</statuses>
<statuses>true</statuses>
<statuses>true</statuses>
<statuses>true</statuses>
<statuses>true</statuses>
<statuses>true</statuses>
<statuses>true</statuses>
<statuses>true</statuses>
<statuses>true</statuses>
<statuses>true</statuses>
<statuses>true</statuses>
<statuses>true</statuses>

// attribute as separated element
<name>data-test</name>
...
</data>

我怎样才能避免这种奇怪的重复呢?

我猜访问类型不起作用。您是否尝试过XmlAccessType.FIELD?另外,请确保您已经正确编译了类,并且类路径设置正确,可能您有一个以前测试中的旧类

更新:


您可以尝试显式地将@XmlTransient添加到getter/setter吗?

它看起来像是JDK 1.6.24内置jaxb中的一个bug

是的,但我得到了完全相同的结果:@Randomize-添加了另一个建议。在get/set上添加transient我得到:com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException:4计数IllegalAnnotationExceptions…@Randomize-您使用的是什么版本的java?您使用的是默认内置jaxb实现吗?是JDK 1.6.24中的内置版本。我刚切换到Java7,问题似乎消失了!顺便说一句,java 6应该升级到1.6.31版。在我看来,这是一个版本问题。
<data name="data-test">
<statuses>
    <status>true</status>
    <status>true</status>
    <status>true</status>
    <status>true</status>
    <status>true</status>
    <status>true</status>
    <status>true</status>
    <status>true</status>
    <status>true</status>
    <status>true</status>
    <status>true</status>
    <status>true</status>
</statuses>

// strange repetition
<statuses>true</statuses>
<statuses>true</statuses>
<statuses>true</statuses>
<statuses>true</statuses>
<statuses>true</statuses>
<statuses>true</statuses>
<statuses>true</statuses>
<statuses>true</statuses>
<statuses>true</statuses>
<statuses>true</statuses>
<statuses>true</statuses>
<statuses>true</statuses>

// attribute as separated element
<name>data-test</name>
...
</data>