java - 将 MTOM 与 XOP 结合使用的优点

标签 java web-services soap weblogic mtom

我想知道使用 WS 和 MTOM 的主要好处是什么。 (不流式传输附件)

据我了解,有效负载不会包含将成为 MIME 一部分的二进制数据

“当您使用 MTOM/XOP 优化 SOAP 消息时,XOP 处理会将其序列化为 MIME 多部分/相关消息。XOP 处理从 SOAP 消息中提取 base64Binary 数据,并将其打包为 MIME 消息中的单独二进制附件,方式与电子邮件附件类似”

因此有效负载可能会比 base64 格式小(但不多)

但是如果不使用流附件,我看不到什么优势......随着 SOAP 被反序列化,有效负载无论如何都会最终进入内存。

因此,如果 SOAP 必须包含一个大的 PDF 文件,我必须存储它......使用纯 MTOM,如果我不使用流式附件,则不会有太多好处,因为同时多个用户可能会因 OOME 而导致服务器崩溃......

我错了吗?

最佳答案

使用 MTOM 的原因有几个:

  • MTOM具有良好的互操作性。 MTOM 是W3C 推荐, 得到 Microsoft、IBM、Oracle 等公司的认可。

  • MTOM 附件可由 Web 服务功能处理 如所须。附件的临时 Base64 表示 允许 SOAP 引擎使用它们来生成消息签名, 执行加密等。

  • MTOM 对开发没有影响。没有专门的 API 来处理 SOAP 附件。

关于java - 将 MTOM 与 XOP 结合使用的优点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14498012/

相关文章:

java - JPA - 如何在 openjpa 中复制 Hibernate 的更新版本查询

Java GC 奇怪的行为还是内存泄漏?

c# - 是否有 C# API 或 Web 服务来获取 NSE 或 BSE 的报价?

java - 使用线程上下文ClassLoader从类路径读取WSDL

java - 读取/写入文件逐行报告位置

c# - C#中的Java加密代码

c# - 如何授予文件上传到服务器的访问权限?

web-services - WebServiceException:方法参数:<foo>不能为null。这是违反BP 1.1 R2211的行为

python - 全流式 XML 解析器

java - 使用 ksoap2-android SOAP 客户端从 WSDL 生成 Java 以在 Android 上使用?