Spring-rmi アプリケーションで圧縮用のカスタム ソケット ファクトリを実装しようとしています。
以下は rmi-server 設定です:
<bean id="parentRmiServiceExporter" class="org.springframework.remoting.rmi.RmiServiceExporter" abstract="true">
<property name="registryPort" value="${rmi.port}"/>
<property name="registerTraceInterceptor" value="false"/>
<!-- gZip Server and Client Socket Factory -->
<property name="clientSocketFactory" ref=egsZipClientSocketFactory/>
<property name="serverSocketFactory" ref="egsZipServerSocketFactory" />
</bean>
圧縮ストリームは、以下の実装に基づいています。
http://jmvidal.cse.sc.edu/csce790/handouts/sockets/CompressionInputStream.java.html
ただし、rmi クライアントの起動時に以下のエラーが発生します。
Caused by: java.net.SocketException: Software caused connection abort: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method) [rt.jar:1.7.0_15]
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109) [rt.jar:1.7.0_15]
at java.net.SocketOutputStream.write(SocketOutputStream.java:132) [rt.jar:1.7.0_15]
spring-rmi アプリで圧縮を実現する方法は?