【问题标题】:What's the difference between MTOM and the attachment features provided by SAAJ?MTOM 和 SAAJ 提供的附件功能有什么区别?
【发布时间】:2013-03-07 00:20:31
【问题描述】:

SAAJ: SOAP with Attachments API for Java

MTOM: SOAP 消息传输优化机制

我的简单理解:它们处理 SOAP 附件,MTOM 是更优化的 SAAJ 版本。它是否正确?

他们只是做同一件事的两种不同方式吗?还是我想在这里比较苹果和橘子?

我可以同时使用 SAAJ 和 MTOM 吗?

【问题讨论】:

    标签: soap jax-ws mtom saaj


    【解决方案1】:

    这有点复杂。 SAAJ 是一个用于操作 SOAP 信封的旧 Java API,因此可以以合理的方式发送二进制附件(即不是消息正文中的 BASE64 编码字符串)。 SAAJ 是一种低级接口,您需要在代码中“手动”构建 SOAP 信封并为其添加附件。

    如果您不需要使用遗留代码并且想直接使用 SOAP 信封,请查看JAX-WS Dispatcher 和 Provider 接口。

    MTOM 是另一种野兽。它不是一个完整的 Web 服务 API——它是发送附件的特殊方式。它可以被任何“真正的”Web 服务 API 使用,例如 JAX-WS 或 SAAJ(如果您设法强制 SAAJ 以这种方式工作)。

    MTOM(几乎)总是与 XOP 一起使用,这是一种发送二进制数据的更有效方式,与 BASE64(开销很大)相比。附件作为 MIME 附件单独发送,并且正确处理了 MIME 类型(这曾经是 Java-Microsoft 技术交互的问题)。

    现在忘记 SAAJ,使用大多数 JAX-WS 实现提供的 JAX-WS + MTOM 支持。

    【讨论】:

    • 这解释了很多。是“这曾经是 Java-Microsoft 技术交互的问题)。”关于 XOP 还是关于不使用 XOP?或者不使用 MTOM?
    猜你喜欢
    • 2015-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    • 2016-12-14
    • 2020-05-28
    相关资源
    最近更新 更多