5.3. 원격 자카르타 엔터프라이즈 빈 데이터 압축
Enterprise Beans 프로토콜 메시지가 포함된 메시지 스트림을 압축할 수 있습니다.
현재 압축은 클라이언트와 서버측에 있어야 하는 Jakarta Enterprise Beans 인터페이스의 주석으로만 지정할 수 있습니다. 현재 압축 힌트를 지정하는 데 해당하는 XML이 없습니다.
데이터 압축 힌트는 JBoss 주석 org.jboss.ejb.client.annotation.CompressionHint
를 통해 지정할 수 있습니다. 힌트 값은 요청, 응답 또는 요청 및 응답을 압축할지 여부를 지정합니다. @CompressionHint
를 추가하는 기본값은 compressResponse=true
및 compressRequest=true
입니다.
인터페이스 수준에서 주석을 지정하여 다음과 같은 Jakarta Enterprise Beans 인터페이스의 모든 메서드에 적용할 수 있습니다.
import org.jboss.ejb.client.annotation.CompressionHint; @CompressionHint(compressResponse = false) public interface ClassLevelRequestCompressionRemoteView { String echo(String msg); }
또는 주석은 다음과 같은 Jakarta Enterprise Beans 인터페이스의 특정 메서드에 적용할 수 있습니다.
import org.jboss.ejb.client.annotation.CompressionHint; public interface CompressableDataRemoteView { @CompressionHint(compressResponse = false, compressionLevel = Deflater.BEST_COMPRESSION) String echoWithRequestCompress(String msg); @CompressionHint(compressRequest = false) String echoWithResponseCompress(String msg); @CompressionHint String echoWithRequestAndResponseCompress(String msg); String echoWithNoCompress(String msg); }
위에 표시된 compressedLevel
설정은 다음과 같은 값을 가질 수 있습니다.
- BEST_COMPRESSION
- BEST_SPEED
- DEFAULT_COMPRESSION
- NO_COMPRESSION
compressionLevel
설정은 기본적으로 Deflater.DEFAULT_COMPRESSION
입니다.
메서드 수준 덮어쓰기가 있는 클래스 수준 주석은 다음과 같습니다.
@CompressionHint public interface MethodOverrideDataCompressionRemoteView { @CompressionHint(compressRequest = false) String echoWithResponseCompress(final String msg); @CompressionHint(compressResponse = false) String echoWithRequestCompress(final String msg); String echoWithNoExplicitDataCompressionHintOnMethod(String msg); }
클라이언트 측에서 org.jboss.ejb.client.view.annotation.scan.enabled
시스템 속성이 true
로 설정되어 있는지 확인합니다. 이 속성은 JBoss Jakarta Enterprise Beans Client에 주석을 스캔하도록 지시합니다.