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 に対してアノテーションをスキャンします。