簡體   English   中英

Gson.toJson Stackoverflow錯誤

[英]Gson.toJson Stackoverflow error

我在Java中使用播放框架(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);

我正在嘗試使用Gson庫對其進行序列化。 我試圖做到這一點

return new Gson().toJson(Reservation.find.where().eq("reservationId", id).findUnique(););

但我總是得到這個錯誤:

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]

我已經閱讀了很多有關此的內容,並且我了解到在序列化Reservation對象時可能在某處發生了無限循環,但是由於該對象與任何其他類沒有任何關系,因此我不明白為什么會發生這種情況。

問題出在格森身上。 Gson在將ebean轉換為Json方面存在已知問題。 我將其替換為傑克遜,現在可以使用了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM