jersey/jaxb解组java对象,但未填充字段

jersey/jaxb解组java对象,但未填充字段,java,json,jaxb,jersey,Java,Json,Jaxb,Jersey,我有一个Jersey服务器端代码,它将Java对象作为主体参数。这个Java对象可以说首选项定义如下 @XmlRootElement(name = "preferences", namespace = "http://arjun.test.com/tests/1.0") public class Preferences { String field1; String field2; public Preferences() { } @XmlEle

我有一个Jersey服务器端代码,它将Java对象作为主体参数。这个Java对象可以说
首选项
定义如下

 @XmlRootElement(name = "preferences", namespace = "http://arjun.test.com/tests/1.0")
 public class Preferences {

    String field1;
    String field2;

    public Preferences() {
    }

    @XmlElement(name = "field-1", namespace = "http://arjun.test.com/tests/1.0")
    public String getField1() {
        return field1;
    }

    public void setField1(String field1) {
       this.field1 = field1;
    }

    @XmlElement
    public String getField2() {
        return field2;
    }

    public void setField2(String field2) {
        this.field2 = field2;
    }
}
我的问题是:在从客户端发送数据时,我填充了两个字段,但不知何故,在服务器中,第一个字段值始终为null,如果我将field1 XML注释更改为与field2相同的值,那么它就可以正常工作

有人能告诉我我犯了什么错误吗


Jersey服务器方法正在生成和使用JSON对象。

如果我将第一个字段与以下xml注释一起使用,它将在@XmlElement(name=“field1”)下工作。也就是说,名称中没有“-”。这意味着什么???您是否尝试将@XmlElement(name=“field-2”,namespace=“)添加到getField2?是的,这没有帮助,在这种情况下,甚至field2也是空的。您确定设置了field2值吗?尝试找出field1和field2之间的差异,可能在代码的另一部分。您是否尝试不使用“namespace”XmlRootElement和XmlElement中的参数?除了xml注释中的name参数外,没有其他区别。是的,我已经删除了名称空间,并尝试删除它。