在环顾四周并尝试了不同的建议解决方案后,我正在写这篇文章。建议从 MTOM/非 MTOM SOAP 消息中提取二进制数据的 2 个最常见的解决方案是:
- 检索 OMText 节点,并使用其中的 dataHandler 实例
- 找到包含“href”属性的 OMElement 节点。获取 'cid:xxxxx' 值,并使用 'xxxxx' 部分从消息上下文实例中存在的附件映射中检索附件。
我面临的问题是我的客户端指示 SOAP 响应消息是 MTOM [我使用消息上下文实例的 isDoingMTOM() 方法确定了这一点]。但是,没有包含“href”属性的 OMElement 节点。在打印 SOAP 信封时,我发现二进制数据内嵌在正文中。所以我尝试了 OMText 节点方法来获取数据,但是每当我尝试将 OMElement 强制转换为相应的 OMText 节点时,我都会不断收到 classCastException。
有人可以指出我错过了什么吗?