SAAJ:带有附件的 SOAP
MTOM: SOAP消息传输优化机制
我的简单理解是:它们处理SOAP附件,MTOM是SAAJ的优化版本。这是正确的吗?
他们仅仅是做同一件事的两种不同的方式吗?还是我想比较这里的苹果和橘子?
我能一起用SAAJ和MTOM吗?
发布于 2013-03-18 22:50:27
这有点复杂。萨伊是一个用于操作SOAP信封的旧Java,因此发送二进制附件可以以一种正常的方式完成(而不是作为消息体中的BASE64编码字符串)。SAAJ是一种低级接口,您需要在代码中“手工”构造SOAP信封,并向其添加附件。
如果您不需要使用遗留代码,并且希望直接使用SOAP信封,那么请查看贾克斯-WS Dispatcher和Provider接口。
MTOM是另一只野兽。它不是一个完整的web服务API --它是发送附件的专门方式。它可以被任何“真正”的web服务API使用,比如JAX或SAAJ (如果您设法迫使SAAJ那样工作)。
与BASE64相比,MTOM (几乎)总是与XOP一起使用,这是一种比BASE64更有效的发送二进制数据的方法(后者的开销很大)。附件作为MIME附件单独发送,MIME类型被正确处理(这曾经是Java技术交互中的一个问题)。
现在,忘记SAAJ,使用JAX+ MTOM支持,这是由大多数JAX实现提供的。
https://stackoverflow.com/questions/15480632
复制相似问题