Web services 我的第一个RESTful Web服务有问题
我正在用javaEE6开发我的firts RestFul Web服务。 这是我的实体BeanWeb services 我的第一个RESTful Web服务有问题,web-services,rest,java-ee-6,Web Services,Rest,Java Ee 6,我正在用javaEE6开发我的firts RestFul Web服务。 这是我的实体Bean @XmlRootElement @Entity public class MyEntity implements Serializable { @Id @GeneratedValue private long idEntity; private String name; private String description; @OneToMany(mappedBy = "entity
@XmlRootElement
@Entity
public class MyEntity implements Serializable {
@Id
@GeneratedValue
private long idEntity;
private String name;
private String description;
@OneToMany(mappedBy = "entity" , fetch = FetchType.EAGER)
private List<EntityB> list;
//Get and set
}
@Entity
public class EntityB {
@Id
@GeneratedValue
private long idCategoria;
@ManyToOne
private MyEntity myEntity;
}
最后我穿上了球衣
@ApplicationPath("ws")
public class ApplicationConfig extends Application {
}
现在,如果我尝试调用我的web服务(localhost:8080/xxxx/ws/myentity),则会出现以下错误:
HTTP状态500-javax.xml.bind.MarshalException-带链接异常:[com.sun.istack.SAXException2:在对象图中检测到一个循环。这将导致无限深的xml您有一个对象循环图,这是不允许的,因为它将导致“无限”xml MyEntity持有对EntityB的引用,EntityB持有一个可追溯到MyEntity的引用 封送员将尝试封送MyEntity>EntityB>MyEntity>EntityB等 您可以将EntityB中的MyEntity标记为@XmlTransient,以避免这种情况 但是,尝试在所有项目中使用相同的对象类(从持久性层到通信层)可能不是一个好主意
@ApplicationPath("ws")
public class ApplicationConfig extends Application {
}