Jest to nieco bardziej skomplikowane. SAAJ jest starym interfejsem API języka Java używanym do manipulowania kopertami SOAP, więc wysyłanie załączników binarnych może odbywać się w rozsądny sposób (to nie jest zakodowany ciąg znaków BASE64 w treści wiadomości). SAAJ to rodzaj niskiego poziomu interfejsu, musisz utworzyć kopertę SOAP "ręcznie" w swoim kodzie i dodać do niej załączniki.
Jeśli nie potrzebujesz pracować ze starszym kodem i chcesz pracować bezpośrednio z kopertami SOAP, spójrz na interfejsyDispatcher and Provider.
MTOM to kolejna bestia. To nie jest pełny API serwisu WWW - to wyspecjalizowany sposób wysyłania załączników. Może być używany przez dowolne "prawdziwe" API serwisu WWW, takie jak JAX-WS lub SAAJ (jeśli uda ci się wymusić działanie SAAJ w taki sposób).
MTOM jest (prawie) zawsze używany z XOP, bardziej wydajnym sposobem przesyłania danych binarnych w porównaniu z BASE64 (który ma duży narzut). Załącznik jest wysyłany osobno jako załącznik MIME, a typ MIME jest obsługiwany poprawnie (co było wcześniej problemem dla interakcji technologii Java-Microsoft).
W dzisiejszych czasach zapomnij o SAAJ, korzystaj z obsługi JAX-WS + MTOM, którą zapewnia większość implementacji JAX-WS.
Dobra odpowiedź. Zdecydowanie warto więcej przegranych. – Hubert