gpt4 book ai didi

java - 使用 Jersey 发送大型 JAXB 对象会生成 OutOfMemoryError

转载 作者:行者123 更新时间:2023-12-02 06:56:10 25 4
gpt4 key购买 nike

我使用 Jersey 作为我的 REST 实现,并使用 JAXB 来表示我的类。我做了一个微小的文件传输机制。在客户端,将文件设置为 JAXB 对象之前将其转换为 BASE64 字符串。然后,JAXB 对象通过 Jersey 发送到服务器。

它适用于不大于 50 MB 左右的文件,但当我尝试发送 500 MB 文件时,我的客户端上收到 OutOfMemoryError 。我已将 -Xms-Xmx 设置为 2048m 但没有帮助,我仍然收到错误。

我该怎么做才能让它处理非常大的文件?

最佳答案

重写整个内容以流式传输文件。不要对其进行 base64 编码,不要使用 JAXB,不要将其嵌入 XML 中。即使文件大小为 900 TB,也能正常工作。如果需要,请在 Jersey 以外实现此操作。 HTTP GET 产生 HTTP 响应,并在正文中传输文件字节。您可以在许多 servlet 教程等介绍中找到实现此功能的示例 servlet。

关于java - 使用 Jersey 发送大型 JAXB 对象会生成 OutOfMemoryError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17324947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com