首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JAXB不封送循环引用

JAXB不封送循环引用
EN

Stack Overflow用户
提问于 2018-07-30 22:45:13
回答 2查看 421关注 0票数 1

我以前使用过JAXB从循环数据结构生成json,我想这次我做了同样的事情,但似乎没有,因为我得到了这个错误:

代码语言:javascript
复制
Jul 30, 2018 4:28:08 PM org.eclipse.yasson.internal.Marshaller marshall
SEVERE: Generating incomplete JSON
Jul 30, 2018 4:28:08 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [jersey-servlet] in context with path [/Kanzan] threw exception [org.glassfish.jersey.server.ContainerException: java.lang.StackOverflowError] with root cause
java.lang.StackOverflowError
    at java.util.concurrent.ConcurrentHashMap$BaseIterator.<init>(ConcurrentHashMap.java:3389)
    at java.util.concurrent.ConcurrentHashMap$ValueIterator.<init>(ConcurrentHashMap.java:3430)
    at java.util.concurrent.ConcurrentHashMap$ValuesView.iterator(ConcurrentHashMap.java:4683)
    at org.eclipse.yasson.internal.ComponentMatcher.searchComponentBinding(ComponentMatcher.java:179)
    at org.eclipse.yasson.internal.ComponentMatcher.getSerializerBinding(ComponentMatcher.java:135)
    at org.eclipse.yasson.internal.serializer.SerializerBuilder.build(SerializerBuilder.java:72)
    at org.eclipse.yasson.internal.serializer.ObjectSerializer.marshallProperty(ObjectSerializer.java:91)
    at org.eclipse.yasson.internal.serializer.ObjectSerializer.serializeInternal(ObjectSerializer.java:59)
    at org.eclipse.yasson.internal.serializer.AbstractContainerSerializer.serialize(AbstractContainerSerializer.java:60)
    at org.eclipse.yasson.internal.serializer.AbstractContainerSerializer.serializerCaptor(AbstractContainerSerializer.java:91)
    at org.eclipse.yasson.internal.serializer.ObjectSerializer.marshallProperty(ObjectSerializer.java:92)
    at org.eclipse.yasson.internal.serializer.ObjectSerializer.serializeInternal(ObjectSerializer.java:59)
    at org.eclipse.yasson.internal.serializer.AbstractContainerSerializer.serialize(AbstractContainerSerializer.java:60)
    at org.eclipse.yasson.internal.serializer.AbstractContainerSerializer.serializerCaptor(AbstractContainerSerializer.java:91)
    at org.eclipse.yasson.internal.serializer.ObjectSerializer.marshallProperty(ObjectSerializer.java:92)
    at org.eclipse.yasson.internal.serializer.ObjectSerializer.serializeInternal(ObjectSerializer.java:59)  

这是来源:

代码语言:javascript
复制
@XmlAccessorType(XmlAccessType.FIELD)
@Entity
@Table(name="INTERVIEW")
public class Interview {
    @Id
    @GeneratedValue
    @Column (name = "ID")
    private int id;
    @Column (name="DATE")
    private Date date_;
    @Column (name="TITLE")
    private String title;
    @Column (name="CEO")
    private String ceo;
    @OneToMany (mappedBy="interview", cascade = CascadeType.ALL, orphanRemoval = true)
    private List<QA> QAs;
    @OneToOne
    @JoinColumn(name="STOCK_ID")
    @XmlTransient
    private Stock stock;

    ....GETTERS and SETTERS...
}


@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
@Entity
@Table(name="STOCK")
public class Stock {
    @Id
    @GeneratedValue
    @Column (name = "ID")
    private int id;
    @Column (name="TITLE")
    @OneToOne(cascade = CascadeType.ALL, orphanRemoval = true, mappedBy = "stock")
    private Interview interview;

    ....GETTERS AND SETTERS....
}

如果从各自中删除Interview和Stock引用,则可以进行封送处理。

EN

回答 2

Stack Overflow用户

发布于 2018-07-31 02:53:10

解决了。工作所需的一些球衣罐子

票数 0
EN

Stack Overflow用户

发布于 2020-06-21 00:50:02

我不确定为什么OP不共享jars,但至少这条错误消息

代码语言:javascript
复制
org.eclipse.yasson.internal.Marshaller marshall
SEVERE: Generating incomplete JSON

为我解决了以下依赖关系。

代码语言:javascript
复制
<dependency>
    <groupId>org.eclipse</groupId>
    <artifactId>yasson</artifactId>
    <version>1.0.1</version>
</dependency>
<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.json</artifactId>
    <version>1.1.2</version>
</dependency>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51596606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档