Marshalling Error: A cycle is detected in the object graph. - 全栈笔记

Marshalling Error: A cycle is detected in the object graph.

任亦伟 JAVA, 异常 2015-03-11 71 次浏览 没有评论

在WebService编程传输对象的时候出现:Marshalling Error: A cycle is detected in the object graph. This will cause infinitely deep XML 。

这是由于对象中有关联造成的,可以通过在get方法上注解@XmlTransient来取消对某个属性的序列化。

01
package com.renyiwei.wydns.domain;
02
 
03
import javax.xml.bind.annotation.XmlTransient;
04
 
05
/**
06
 *这是一个产品可选信息配置的类,绑定在产品栏目上,所以它和产品栏目有多对一的关联关系
07
 *而产品栏目和它又有一对多的关联关系,所以会造成循环
08
 **/
09
public class ProductOption {
10
  //编号
11
  private Long id;
12
  //绑定的栏目编号
13
  private ProductCategory category;
14
  //绑定的字段
15
  private String fieldname;
16
  //输入类型
17
  private String fieldtype;
18
 
19
 
20
 public Long getId() {
21
    return id;
22
  }
23
  public void setId(Long id) {
24
    this.id = id;
25
  }
26
  /*在这里注解*/
27
  @XmlTransient
28
  public ProductCategory getCategory() {
29
    return category;
30
  }
31
  public void setCategory(ProductCategory category) {
32
    this.category = category;
33
  }
34
  public String getFieldname() {
35
    return fieldname;
36
  }
37
  public void setFieldname(String fieldname) {
38
    this.fieldname = fieldname;
39
  }
40
  public String getFieldtype() {
41
    return fieldtype;
42
  }
43
  public void setFieldtype(String fieldtype) {
44
    this.fieldtype = fieldtype;
45
  }
46
 
47
}
48

发表评论

回顶部