9.3. MTOM 활성화
기본적으로 Apache CXF 런타임은 MTOM 지원을 활성화하지 않습니다. 모든 바이너리 데이터를 일반 Cryostat 메시지의 일부 또는 최적화되지 않은 연결로 전송합니다. 프로그래밍 방식으로 또는 구성 사용을 통해 MTOM 지원을 활성화할 수 있습니다.
9.3.1. Cryostat-WS API 사용
9.3.1.1. 개요
서비스 공급자와 소비자 모두 MTOM 최적화를 활성화해야 합니다. Cryostat-WS API는 각 유형의 끝점에 대해 다양한 메커니즘을 제공합니다.
9.3.1.2. 서비스 공급자
Cryostat-WS API를 사용하여 서비스 공급자를 게시한 경우 다음과 같이 런타임의 MTOM 지원을 활성화합니다.
게시된 서비스에 대한
Endpoint
오브젝트에 액세스합니다.Endpoint
오브젝트에 액세스하는 가장 쉬운 방법은 엔드포인트를 게시하는 것입니다. 자세한 내용은 31장. 서비스 게시 에서 참조하십시오.예 9.4. “끝점에서 Cryostat 바인딩 가져오기” 에 표시된 대로
getBinding()
메서드를 사용하여 끝점에서 Cryostat 바인딩을 가져옵니다.예 9.4. 끝점에서 Cryostat 바인딩 가져오기
// Endpoint ep is declared previously SOAPBinding binding = (SOAPBinding)ep.getBinding();
반환된 바인딩 오브젝트를 MTOM 속성에
액세스하려면 CryostatBinding
오브젝트로 캐스팅해야 합니다.예 9.5. “서비스 공급자의 MTOM 활성화 속성 설정” 와 같이 바인딩의
setMTOMEnabled()
메서드를 사용하여 바인딩의 MTOM enabled 속성을true
로 설정합니다.예 9.5. 서비스 공급자의 MTOM 활성화 속성 설정
binding.setMTOMEnabled(true);
9.3.1.3. 소비자
소비자의 프록시를
BindingProvider
개체로 캐스팅합니다.소비자 프록시를 가져오는 방법에 대한 자세한 내용은 25장. WSDL 계약 없이 소비자 개발 또는 28장. WSDL 계약에서 소비자 개발 을 참조하십시오.
예 9.6. “
BindingProvider
에서 Cryostat 바인딩 가져오기” 에 표시된 대로getBinding()
메서드를 사용하여BindingProvider
에서 Cryostat 바인딩을 가져옵니다.예 9.6.
BindingProvider
에서 Cryostat 바인딩 가져오기// BindingProvider bp declared previously SOAPBinding binding = (SOAPBinding)bp.getBinding();
예 9.7. “소비자의 MTOM 활성화 속성 설정” 에 표시된 대로 바인딩의
setMTOMEnabled()
방법을 사용하여 바인딩 MTOM enabled 속성을true
로 설정합니다.예 9.7. 소비자의 MTOM 활성화 속성 설정
binding.setMTOMEnabled(true);
9.3.2. 구성 사용
9.3.2.1. 개요
컨테이너에 배포할 때와 같이 XML을 사용하여 서비스를 게시하는 경우 엔드포인트의 구성 파일에서 끝점의 MTOM 지원을 활성화할 수 있습니다. 끝점 구성에 대한 자세한 내용은 IV 부. 웹 서비스 엔드 포인트 구성 을 참조하십시오.
9.3.2.2. 프로세스
MTOM 속성은 끝점의 jaxws:endpoint
요소 내에 설정됩니다. MTOM을 활성화하려면 다음을 수행합니다.
-
엔드포인트의
jaxws:endpoint
요소에jaxws:property
하위 요소를 추가합니다. -
jaxws:property
요소에항목
하위 요소를 추가합니다. -
entry
요소의key
속성을mtom-enabled
로 설정합니다. -
entry
요소의value
속성을true
로 설정합니다.
9.3.2.3. 예
예 9.8. “MTOM 활성화 구성” MTOM이 활성화된 엔드포인트를 표시합니다.
예 9.8. MTOM 활성화 구성
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schema/jaxws.xsd"> <jaxws:endpoint id="xRayStorage" implementor="demo.spring.xRayStorImpl" address="http://localhost/xRayStorage"> <jaxws:properties> <entry key="mtom-enabled" value="true"/> </jaxws:properties> </jaxws:endpoint> </beans>