좀 더 복잡합니다. SAAJ은 SOAP 봉투를 조작하는 데 사용되는 이전 Java API이므로 이진 첨부 파일을 정상적으로 처리 할 수 있습니다 (즉, 메시지 본문에 BASE64로 인코딩 된 문자열이 아닙니다). SAAJ는 일종의 저수준 인터페이스이므로 코드에서 SOAP 봉투를 "직접 작성"하여 첨부 파일을 추가해야합니다.
레거시 코드로 작업 할 필요가없고 SOAP 봉투로 직접 작업하려는 경우 JAX-WS Dispatcher 및 Provider 인터페이스를 확인하십시오.
MTOM은 다른 짐승입니다. 완전한 웹 서비스 API는 아니며 첨부 파일을 보내는 특수한 방법입니다. JAX-WS 나 SAAJ와 같은 "진정한"웹 서비스 API에서 사용할 수 있습니다 (SAAJ가 그런 식으로 작동하도록하는 경우).
MTOM은 BASE64 (큰 오버 헤드가 있음)와 비교할 때 이진 데이터를 보내는 더 효율적인 방법 인 XOP와 거의 항상 함께 사용됩니다. 첨부 파일은 MIME 첨부 파일로 별도로 전송되며 MIME 유형은 올바르게 처리됩니다 (Java-Microsoft 기술 상호 작용에서 문제로 사용됨).
지금 SAAJ를 잊어 버리고 대부분의 JAX-WS 구현에서 제공되는 JAX-WS + MTOM 지원을 사용하십시오.
좋은 답변입니다. 그것은 definitelly 더 upvotes 가치가있다. – Hubert