SAAJ替换xop:包含内联附件的链接

时间:2016-09-28 11:41:17

标签: java soap websphere mtom saaj

我们使用WAS 8.5.5提供的SAAJ实现准备多部分SOAP请求,它看起来是正确的,直到我们不添加作为一部分发送的XOP链接引用附件:

<xop:Include href="cid:my_attachment_id" xmlns:xop="http://www.w3.org/2004/08/xop/include"/>

一旦将此类链接添加到信封中,它就会被SAAJ替换为base64编码的附件内容。因此,附件以二进制和base64格式发送两次。

知道如何预防这种意想不到的内联吗?

UPD试图跟进评论

我们填充类型为base64Binary的名为“data”的元素,然后使用wireshark检查请求。假设我们有2个案例:

1)如下所示的非XOP链接按原样发送,由wireshark确认

<data><link href="cid:my_attachment_id"/></data>

2)XOP链接最初形成为

<data><xop:Include href="cid:my_attachment_id" 
           xmlns:xop="http://www.w3.org/2004/08/xop/include"/></data>

根据wireshark翻译成

<data>PGh0dHA6Ly9mb28uY29tPg0KW2Zvb10oaHR0cDov....</data>

此处“data”元素的内容正是由给定content-id(my_attachment_id)标识的base64编码附件。

0 个答案:

没有答案
相关问题