시작하기 전에
SOAP 메시지는 일반 텍스트를 기반으로 하기 때문에 SOAP 메시지로 된 2진 데이터는 Base64 형식으로 전송된다. 따라서 2진 데이터가 Base64로 변환되기 때문에 데이터의 크기가 증가한다. 그리고 대용량 첨부 파일이 있는 경우에는 이로 인해 애플리케이션이 강제로 종료되고 메모리 문제 때문에 서버가 중지된다. MTOM(SOAP Message Transmission Optimization Mechanism)에서는 2진 데이터를 실제 SOAP 메시지로 유지하는 대신 base64Binary로 인코딩하여 2진 첨부 파일 형태로 전송한다. MTOM에서는 PDF, Doc, 이미지 및 기타 문서 유형과 같은 2진 데이터를 전송하는 우수한 메커니즘을 제공한다. MTOM에서는 XOP(XML-binary Optimized Packaging) 패키지를 사용하여 2진 데이터를 전송한다. CXF는 XOP 구현을 사용하는 MTOM을 지원한다.
세 개의 파트로 구성된 이 시리즈의 마지막 파트인 이 튜토리얼에서는 Apache CXF를 사용하여 파일 업로드 웹 서비스를 개발하는 방법을 설명한다.
이 튜토리얼 시리즈에서는 Apache AXIS2, Apache CXF 및 JAX-WS와 같은 다양한 SOAP 엔진을 사용하는 웹 서비스의 기본 개념을 설명한다. 또한, 이 튜토리얼 시리즈에서는 MTOM(SOAP Message Transmission Optimization Mechanism)을 사용하여 대용량 첨부 파일을 SOAP 메시지로 전송하는 솔루션을 제공한다. MTOM에서는 실제 SOAP 메시지로 2진 데이터를 유지하는 대신 base64Binary로 인코딩하여 2진 첨부 파일로 데이터를 전송한다. 이 시리즈에서는 SAAJ API를 사용하여 간단히 메소드를 호출함으로써 SOAP 기반 XML 메시지를 읽고 쓸 수 있으며 필요에 따라 인터넷을 기반으로 이러한 메시지를 전송하고 수신할 수 있다.
Part 1에서는 먼저, 웹 서비스의 바탕이 되는 기본 개념과 다양한 방식(코드 우선 및 계약 우선)을 사용하여 Axis2로 웹 서비스를 개발하는 방법을 설명한다.
Part 2에서는 먼저, JAX-WS를 사용하여 Hello User 웹 서비스를 개발한 후, 한 단계 더 나아가서 MTOM과 JAX-WS를 사용하는 파일 다운로드 웹 서비스 예제를 살펴본다. 이 예제에서는 클라이언트에서 웹 서비스를 통해 파일을 다운로드하여 해당 위치에 저장한다. 또한, SAAJ 클라이언트에서 웹 서비스를 호출하는 방법을 설명한다.
Part 3에서는 MTOM용 Apache CXF 지원과 XOP 구현을 사용하여 파일 업로드 웹 서비스를 개발하는 방법을 간단하게 설명한다. 이 웹 서비스를 이용하면 클라이언트에서 웹 서비스로 파일과 첨부 파일을 업로드할 수 있다.
이 튜토리얼에서는 클라이언트 시스템에서 서버로 파일을 업로드할 수 있는 웹 서비스를 개발하는 방법을 설명한다. 클라이언트 애플리케이션은 파일의 위치를 제출하고 웹 서비스를 호출한다. 이 웹 서비스는 파일을 바이트 단위로 수신하여 고정된 지정 위치에 저장한다.
이 튜토리얼에서는 다음과 같은 작업을 수행하는 방법을 배운다.
- CXF를 사용하여 웹 서비스를 빌드하여 Tomcat 서버에 배치한다.
- MTOM 표준을 사용하여 대용량 2진 첨부파일을 전송하는 방법을 배운다.
이 튜토리얼에서는 독자가 Java™ 및 웹 서비스의 기본적인 프로그래밍 개념과 더불어 Eclipse IDE의 몇 가지 기본 개념(뷰, 편집기, 패널 등)에 익숙하다고 가정한다. Eclipse, Java 및 웹 서비스에 대한 소개는 참고자료를 참조한다.
- CXF-bin
- Tomcat
- Eclipse(선택사항)

