Java Gson.toJson堆栈溢出错误

Java Gson.toJson堆栈溢出错误,java,json,playframework,gson,stack-overflow,Java,Json,Playframework,Gson,Stack Overflow,我在java中使用play framework(ebean是我的ORM),我有这样一个类: @Entity @Table(name = "reservation") public class Reservation extends Model implements Validation { @Id @Column(name = "reservationId", columnDefinition = "BIGINT") @GeneratedValue(strategy =

我在java中使用play framework(ebean是我的ORM),我有这样一个类:

@Entity
@Table(name = "reservation")
public class Reservation extends Model implements Validation {
    @Id
    @Column(name = "reservationId", columnDefinition = "BIGINT")
    @GeneratedValue(strategy = GenerationType.AUTO)
    @JsonIgnore
    private long reservationId;
    @Column(name = "restaurantId", columnDefinition = "BIGINT")
    private long restaurantId;
    @Column(name = "dateTime" , columnDefinition = "DATETIME")
    @JsonFormat(pattern = "dd/mm/yyyy HH:mm:ss")
    @Formats.DateTime( pattern = "dd/mm/yyyy HH:mm:ss")
    private Timestamp dateTime;
    @Column(name = "guestCount")
    private int guestCount;
    @Column(length = 300)
    private String note;

    public static Reservation.Finder<String, Reservation> find = new Model.Finder<String, Reservation>(String.class, Reservation.class);
但我总是犯这样的错误:

akka.actor.ActorSystemImpl - Uncaught fatal error from thread [application-akka.actor.default-dispatcher-2] shutting down ActorSystem [application]
java.lang.StackOverflowError: null
    at java.text.DateFormatSymbols.initializeData(DateFormatSymbols.java:684) ~[na:1.8.0_71]
    at java.text.DateFormatSymbols.<init>(DateFormatSymbols.java:146) ~[na:1.8.0_71]
    at sun.util.locale.provider.DateFormatSymbolsProviderImpl.getInstance(DateFormatSymbolsProviderImpl.java:85) ~[na:1.8.0_71]
    at java.text.DateFormatSymbols.getProviderInstance(DateFormatSymbols.java:359) ~[na:1.8.0_71]
    at java.text.DateFormatSymbols.getInstance(DateFormatSymbols.java:335) ~[na:1.8.0_71]
    at java.util.Calendar.getDisplayName(Calendar.java:2110) ~[na:1.8.0_71]
    at java.text.SimpleDateFormat.subFormat(SimpleDateFormat.java:1125) ~[na:1.8.0_71]
    at java.text.SimpleDateFormat.format(SimpleDateFormat.java:966) ~[na:1.8.0_71]
    at java.text.SimpleDateFormat.format(SimpleDateFormat.java:936) ~[na:1.8.0_71]
    at java.text.DateFormat.format(DateFormat.java:345) ~[na:1.8.0_71]
    at com.google.gson.internal.bind.DateTypeAdapter.write(DateTypeAdapter.java:83) ~[gson-2.5.jar:na]
    at com.google.gson.internal.bind.DateTypeAdapter.write(DateTypeAdapter.java:41) ~[gson-2.5.jar:na]
    at com.google.gson.internal.bind.TypeAdapters$26$1.write(TypeAdapters.java:607) ~[gson-2.5.jar:na]
    at com.google.gson.internal.bind.TypeAdapters$26$1.write(TypeAdapters.java:600) ~[gson-2.5.jar:na]
akka.actor.ActorSystemImpl-线程[application akka.actor.default-dispatcher-2]关闭ActorSystem[application]时未捕获的致命错误
java.lang.StackOverflower错误:null
在java.text.DateFormatSymbols.initializeData(DateFormatSymbols.java:684)~[na:1.8.071]
在java.text.DateFormatSymbols.(DateFormatSymbols.java:146)~[na:1.8.0_71]
在sun.util.locale.provider.DateFormatSymbolProviderImpl.getInstance(DateFormatSymbolProviderImpl.java:85)~[na:1.8.071]
在java.text.DateFormatSymbols.getProviderInstance(DateFormatSymbols.java:359)~[na:1.8.071]
在java.text.DateFormatSymbols.getInstance(DateFormatSymbols.java:335)~[na:1.8.071]
在java.util.Calendar.getDisplayName(Calendar.java:2110)~[na:1.8.0_71]
在java.text.simpleDataFormat.subFormat(simpleDataFormat.java:1125)~[na:1.8.0\u 71]
在java.text.simpleDataFormat.format(simpleDataFormat.java:966)~[na:1.8.071]
在java.text.simpleDataFormat.format(simpleDataFormat.java:936)~[na:1.8.071]
在java.text.DateFormat.format(DateFormat.java:345)~[na:1.8.0_71]
在com.google.gson.internal.bind.DateTypeAdapter.write(DateTypeAdapter.java:83)~[gson-2.5.jar:na]
在com.google.gson.internal.bind.DateTypeAdapter.write(DateTypeAdapter.java:41)~[gson-2.5.jar:na]
在com.google.gson.internal.bind.TypeAdapters$26$1.write(TypeAdapters.java:607)~[gson-2.5.jar:na]
在com.google.gson.internal.bind.TypeAdapters$26$1.write(TypeAdapters.java:600)~[gson-2.5.jar:na]

我读了很多关于这方面的书,我知道在序列化Reservation对象时可能会在某个地方发生无限循环,但是由于该对象与任何其他类都没有任何关系,我不明白为什么会发生这种情况。

问题出在Gson上。Gson在将ebean转换为Json时存在已知问题。我用jackson替换了它,现在可以用了。

问题出在Gson上。Gson在将ebean转换为Json时存在已知问题。我用jackson替换了它,现在可以用了

akka.actor.ActorSystemImpl - Uncaught fatal error from thread [application-akka.actor.default-dispatcher-2] shutting down ActorSystem [application]
java.lang.StackOverflowError: null
    at java.text.DateFormatSymbols.initializeData(DateFormatSymbols.java:684) ~[na:1.8.0_71]
    at java.text.DateFormatSymbols.<init>(DateFormatSymbols.java:146) ~[na:1.8.0_71]
    at sun.util.locale.provider.DateFormatSymbolsProviderImpl.getInstance(DateFormatSymbolsProviderImpl.java:85) ~[na:1.8.0_71]
    at java.text.DateFormatSymbols.getProviderInstance(DateFormatSymbols.java:359) ~[na:1.8.0_71]
    at java.text.DateFormatSymbols.getInstance(DateFormatSymbols.java:335) ~[na:1.8.0_71]
    at java.util.Calendar.getDisplayName(Calendar.java:2110) ~[na:1.8.0_71]
    at java.text.SimpleDateFormat.subFormat(SimpleDateFormat.java:1125) ~[na:1.8.0_71]
    at java.text.SimpleDateFormat.format(SimpleDateFormat.java:966) ~[na:1.8.0_71]
    at java.text.SimpleDateFormat.format(SimpleDateFormat.java:936) ~[na:1.8.0_71]
    at java.text.DateFormat.format(DateFormat.java:345) ~[na:1.8.0_71]
    at com.google.gson.internal.bind.DateTypeAdapter.write(DateTypeAdapter.java:83) ~[gson-2.5.jar:na]
    at com.google.gson.internal.bind.DateTypeAdapter.write(DateTypeAdapter.java:41) ~[gson-2.5.jar:na]
    at com.google.gson.internal.bind.TypeAdapters$26$1.write(TypeAdapters.java:607) ~[gson-2.5.jar:na]
    at com.google.gson.internal.bind.TypeAdapters$26$1.write(TypeAdapters.java:600) ~[gson-2.5.jar:na]