小编i.f*_*yza的帖子

gson.toJson()在Servlet中抛出StackOverflowError

我有客户端对象列表

List<Client> clientsList=new ArrayList<Client>();
clientsList=clientDao.GetAllClients();
Run Code Online (Sandbox Code Playgroud)

实体客户端将其他列表作为属性:

@ManyToOne(optional=false)
private User createdBy;


@ManyToMany(mappedBy = "Clients")
private Set<ClientType> Types=new HashSet();


@ManyToOne(optional=false)
private LeadSource id_LeadSource;
@ManyToOne(optional=false)
private Agencie id_Agencie;

@OneToMany(cascade=CascadeType.ALL,mappedBy="Owner")
private Set<Propertie> properties=new HashSet();

@OneToMany(cascade=CascadeType.ALL,mappedBy="buyer")
private Set<Sale> sales=new HashSet();

@OneToMany(cascade=CascadeType.ALL,mappedBy = "client")
private Set<Rent> Rents=new HashSet();

@OneToMany(cascade=CascadeType.ALL,mappedBy = "clientDoc")
private Set<Document> Docuements=new HashSet();
Run Code Online (Sandbox Code Playgroud)

当我尝试将客户端列表转换为json格式时

out.write(new Gson().toJson(clientsList));
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

java.lang.StackOverflowError
at com.google.gson.stream.JsonWriter.beforeName(JsonWriter.java:603)
at com.google.gson.stream.JsonWriter.writeDeferredName(JsonWriter.java:401)
at com.google.gson.stream.JsonWriter.value(JsonWriter.java:512)
at com.google.gson.internal.bind.TypeAdapters$8.write(TypeAdapters.java:270)
at com.google.gson.internal.bind.TypeAdapters$8.write(TypeAdapters.java:255)
at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:113)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:240)
Run Code Online (Sandbox Code Playgroud)

java json servlets java-ee angularjs

2
推荐指数
1
解决办法
5212
查看次数

标签 统计

angularjs ×1

java ×1

java-ee ×1

json ×1

servlets ×1