5.3. 远程 Jakarta Enterprise Beans 数据压缩
您可以压缩包含 Enterprise Beans 协议消息的消息流
注意
目前,压缩只能通过在 Jakarta Enterprise Beans 接口上的注释指定,该界面应该位于客户端和服务器端。当前没有与指定压缩提示相同的 XML。
数据压缩提示可以通过 JBoss 注释 org.jboss.ejb.client.annotation.CompressionHint 指定。hint 值指定是压缩请求、响应还是请求和响应。添加 @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 客户端扫描注释。