如何使用 Jackson 处理深度嵌入 XML 中的超大集合?

问题描述

我有一个与 HTTP 端点交互的简单批处理作业。域对象本质上是这样的。

@Getter
@JsonIgnoreProperties(ignoreUnkNown = true)
public class Data {
    @JacksonXmlProperty(localName = "items")
    private List<Item> items;
}

我遇到的问题是当项目足够大时,可能会导致堆溢出。我正在寻找一种方法来处理这个问题,似乎 StAX 和 Jackson 的混合可能会有所帮助。这是我的序列化...

InputStream in = service.makeRequest(config.getItemsUrl());
XmlMapper mapper = new XmlMapper();
Envelope en = mapper.readValue(in,Envelope.class);

如您所见,这些项目包含在一个信封中,因此它们在对象中非常深。有没有办法解决这个问题,我每 n 项都做一些事情?有我可以使用的杰克逊钩子吗?

如果我对列表发表评论,它可以正常工作,如果列表没有超过分配的堆空间,它也可以正常工作。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...