Java jaxb@ManyToMany@XmlID@XmlIDREF可以';t将引用的对象放入xml中

Java jaxb@ManyToMany@XmlID@XmlIDREF可以';t将引用的对象放入xml中,java,web-services,jaxb,cxf,Java,Web Services,Jaxb,Cxf,嗨,我在使用Web服务时遇到了一个问题 我有一个包含许多角色的对象用户 当我从包含角色的Web服务中获得一个用户(Id:3)时,该角色包含多个用户(Id:3和Id:2)。我犯了个错误 原因:javax.xml.bind.UnmarshaleException:未定义的ID“2” 我假设这是由于id为2的用户不在xml中 我的问题是如何将这个用户填充到xml中 @XmlRootElement() public class User implements UserInterface { @

嗨,我在使用Web服务时遇到了一个问题 我有一个包含许多角色的对象用户

当我从包含角色的Web服务中获得一个用户(Id:3)时,该角色包含多个用户(Id:3和Id:2)。我犯了个错误

原因:javax.xml.bind.UnmarshaleException:未定义的ID“2”

我假设这是由于id为2的用户不在xml中

我的问题是如何将这个用户填充到xml中

@XmlRootElement()
public class User implements UserInterface {

    @Override
    @GeneratedValue
    @Id
    @XmlID
    @XmlJavaTypeAdapter(IntegerAdapter.class)
    public Integer getId() {
        return id;
    }

@Override
@ManyToMany(targetEntity=Role.class,fetch=FetchType.EAGER)
@XmlElement(type=Role.class)
public Set<RoleInterface> getRoles() {
    return roles;
}


}

@XmlRootElement()
public class Role implements RoleInterface {
    @ManyToMany(targetEntity=User.class,fetch=FetchType.EAGER)
    @XmlIDREF
    @XmlList
    public Set<UserInterface> getUsers() {
        return users;
    }
}
@XmlRootElement()
公共类用户实现用户接口{
@凌驾
@生成值
@身份证
@XmlID
@XmlJavaTypeAdapter(IntegerAdapter.class)
公共整数getId(){
返回id;
}
@凌驾
@ManyToMany(targetEntity=Role.class,fetch=FetchType.EAGER)
@XmlElement(类型=Role.class)
公共集getRoles(){
返回角色;
}
}
@XmlRootElement()
公共类角色实现RoleInterface{
@ManyToMany(targetEntity=User.class,fetch=FetchType.EAGER)
@XmlIDREF
@XML列表
公共集getUsers(){
返回用户;
}
}

为了使用
@XmlIDREF
引用的对象还必须通过某种包含关系进行映射,例如
@xmlement

了解更多信息


我相信您无法将XML从
根元素开始。您应该从中删除
@XmlRootElement
。请发布导致问题的XML和完整异常堆栈。