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

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

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

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

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

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

Можно ли использовать SAAJ и MTOM вместе?

4b9b3361

Ответ 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.