【发布时间】:2008-10-27 07:25:14
【问题描述】:
我目前正在使用 Axis 2 实现的 Bea Websphere 6.1 环境中开发 WebService,我正在尝试遵守 Web 服务的当前标准(JAXB、JAXWS、StAX...)。
XML 消息在这个平台上可以存在多长时间?
我已经四处搜索,但没有找到与此主题相关的任何内容。
【问题讨论】:
我目前正在使用 Axis 2 实现的 Bea Websphere 6.1 环境中开发 WebService,我正在尝试遵守 Web 服务的当前标准(JAXB、JAXWS、StAX...)。
XML 消息在这个平台上可以存在多长时间?
我已经四处搜索,但没有找到与此主题相关的任何内容。
【问题讨论】:
不太了解您所在平台的限制,但总的来说,没有硬性限制。将 Axis 与标准 SOAP 堆栈一起使用将采用 SOAP 信封并在内存中创建它的表示形式(dom 或类似 dom),从而限制了堆大小。 如果使用非常大的 XML,更好的方法是使用 STaX,它是一个 XML 流解析器库。这将消除您可能使用或创建的 XML 大小的所有限制。
【讨论】:
是的,由于 Jax-ws 和 SOAP 的工作方式,整个有效负载被绑定:要么绑定到树(更高的内存使用)或 POJO/bean(更低的内存使用)。无论哪种方式,内存使用量都与消息大小成正比。
虽然理论上可以为 Soap 处理创建流式传输/分块接口,但实现起来并非易事,目前还没有堆栈这样做。
【讨论】: