Посмотрев вокруг и попробовав различные предлагаемые решения, я пишу это. 2 наиболее распространенных решения, предложенных для извлечения двоичных данных из сообщения SOAP MTOM / non-MTOM:
- Извлечение узла OMText и использование имеющегося в нем экземпляра dataHandler
- Найдите узел OMElement, который содержит атрибут «href». Получите значение «cid: xxxxx» и используйте часть «xxxxx» для получения вложения из карты вложений, присутствующей в экземпляре контекста сообщения.
Проблема, с которой я сталкиваюсь, заключается в том, что мой клиент указывает, что ответное сообщение SOAP имеет значение MTOM [я определил это с помощью метода isDoingMTOM () экземпляра контекста сообщения]. Однако нет узлов OMElement, которые содержат атрибут «href». При печати конверта SOAP я обнаружил, что двоичные данные находятся внутри тела. Поэтому я попробовал подход узла OMText для получения данных, но всякий раз, когда я пытаюсь привести OMElement к соответствующему узлу OMText, я продолжаю получать исключение classCastException.
Может кто-нибудь указать, что я пропускаю?