2013-03-18 6 views
14

SAAJ : Java 용 첨부 파일 API와 SOAPSAAJ에서 제공하는 MTOM과 첨부 파일 기능의 차이점은 무엇입니까?

MTOM : SOAP 메시지 전송 최적화 메커니즘

내 간단한 이해 : 은 SAAJ의 버전을 최적화 MTOM이 더 많은 것을 함께 그들은, SOAP 첨부 파일 처리 . 이 올바른지?

그들은 똑같은 일을하는 두 가지 다른 방식입니까? 아니면 사과와 오렌지를 비교하려고합니까?

SAAJ와 MTOM을 함께 사용할 수 있습니까?

답변

30

좀 더 복잡합니다. 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 지원을 사용하십시오.

+1

좋은 답변입니다. 그것은 definitelly 더 upvotes 가치가있다. – Hubert