5.3. リモート Jakarta Enterprise Beans データ圧縮
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); }
上記の compressionLevel
設定は、以下の値にすることができます。
- 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 に対してアノテーションをスキャンします。