В чем разница между MTOM и функциями навесного оборудования, предоставляемыми SAAJ?

SAAJ: SOAP с API вложений для Java

MTOM: механизм оптимизации передачи сообщений SOAP.

Мое простое понимание: они имеют дело с вложениями SOAP, а MTOM является более оптимизированной версией SAAJ. Это верно?

Это просто 2 разных способа сделать одно и то же? Или я пытаюсь здесь сравнить яблоки и апельсины?

Могу ли я использовать SAAJ и MTOM вместе?


person Jops    schedule 18.03.2013    source источник


Ответы (1)


Это немного сложнее. SAAJ — это старый API Java, используемый для управления конвертами SOAP, поэтому отправку двоичных вложений можно выполнять в разумным способом (это не строка в кодировке BASE64 в теле сообщения). SAAJ - это своего рода низкоуровневый интерфейс, вам нужно создать конверт SOAP "вручную" в вашем коде и добавить к нему вложения.

Если вам не нужно работать с устаревшим кодом и вы хотите работать напрямую с конвертами SOAP, посмотрите на JAX. -WS Интерфейсы диспетчера и провайдера.

MTOM — еще один зверь. Это не полноценный API веб-сервиса — это специализированный способ отправки вложений. Его может использовать любой «настоящий» API веб-сервиса, такой как JAX-WS или SAAJ (если вам удастся заставить SAAJ работать таким образом).

MTOM (почти) всегда используется с XOP, более эффективным способом отправки двоичных данных по сравнению с BASE64 (который имеет большие накладные расходы). Вложение отправляется отдельно как вложение MIME, и тип MIME обрабатывается должным образом (что раньше было проблемой для взаимодействия технологий Java-Microsoft).

Теперь забудьте о SAAJ, используйте поддержку JAX-WS + MTOM, которая предоставляется большинством реализаций JAX-WS.

person Piotr Kochański    schedule 18.03.2013
comment
Это многое объясняет. раньше это было проблемой для взаимодействия технологий Java-Microsoft). о XOP или о неиспользовании XOP? Или о том, чтобы не использовать MTOM? - person Michiel Cornille; 30.04.2019