我正在编写一个 REST 资源,但我遇到了一个对象问题
@Entity
@Table(name = "TABLE_A")
@XmlRootElement(name = "typeA")
public class TypeA implements GenericType{
@Id
@Column(name = "COLUMN_ID")
@GeneratedValue
private Integer id;
@OneToMany (mappedBy="person")
private List<TypeB> typeBList;
@XmlAttribute
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@XmlElement(name="mytypes")
public List<TypeB> getTypeBList() {
return typeBList;
}
public void setTypeBList(List<TypeB> typeBList) {
this.typeBList = typeBList;
}
}
该接口没有任何注释。
这是提供服务的资源
@Path("user/{id}")
public class PersonResourceImpl {
@GET
@Produces({MediaType.APPLICATION_XML})
public TypeA getPerson(@PathParam("id") String id) {
LOG.info("doGetPerson() - IN");
... get from a datasource ...
return retrievedPerson;
}
当我尝试使用此资源时,会从数据库返回正确的对象,但是当它尝试将其编组为 xml 时,它会因找不到类的消息正文编写器和 MIME 类型 application/xml 而失败
这就是我必须为其他对象做的所有事情并且它们可以工作,我唯一没有做的就是@XmlAttribute 标记,也许那里有问题?
谢谢