È un po 'più complicato. SAAJ è una vecchia API Java utilizzata per manipolare gli inviluppi SOAP, pertanto l'invio di allegati binari può essere eseguito in modo corretto (ovvero non è una stringa codificata BASE64 nel corpo del messaggio). SAAJ è una sorta di interfaccia di basso livello, è necessario costruire la busta SOAP "a mano" nel codice e aggiungere allegati ad essa.
Se non è necessario utilizzare il codice precedente e si desidera lavorare direttamente con buste SOAP, consultare le interfacce JAX-WS Dispatcher e Provider.
MTOM è un altro animale. Non è un'API di servizio web completo, è un modo specializzato per inviare allegati. Può essere utilizzato da qualsiasi "vera" API di servizi Web come JAX-WS o SAAJ (se riesci a forzare SAAJ a funzionare in questo modo).
MTOM è (quasi) sempre utilizzato con XOP, un modo più efficiente di inviare dati binari, rispetto a BASE64 (che ha un grande overhead). L'allegato viene inviato separatamente come allegato MIME e il tipo MIME viene gestito correttamente (che era un problema per le interazioni con le tecnologie Java-Microsoft).
Oggigiorno dimenticare SAAJ, utilizzare il supporto JAX-WS + MTOM fornito dalla maggior parte delle implementazioni JAX-WS.
fonte
2013-03-18 22:50:27
Bella risposta. Vale sicuramente la pena di più upvotes. – Hubert