2012-01-09 87 views
1

嗨,我使用web服務時遇到問題 我有一個包含許多角色的對象用戶。jaxb @ManyToMany @XmlID @XmlIDREF無法將Refed對象轉換爲xml

當我從我的web服務獲得一個用戶(Id:3),其中包含角色,該角色包含許多用戶(id:3和id 2)。我得到了一個錯誤

引起:javax.xml.bind.UnmarshalException:未定義的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; 
    } 
} 
+0

我相信你無法和解組XML開始用''根元素開始。你應該從中刪除'@ XmlRootElement'。請發佈導致問題和完整異常堆棧的XML。 – 2012-01-09 16:55:20

回答