InputStreamを持つオブジェクトをシリアル化しようとしています。ByteArrayとしてフレックスクライアントに到着するために必要です。
注-IExternalizable
このクラスは私のものではないため、実装できません。
変換を行うためのカスタムを登録しましたBeanProxy
が、機能していないようです。
public class InputStreamBeanProxy extends BeanProxy {
@Override
public Object getInstanceToSerialize(Object instance) {
InputStream stream = (InputStream) instance;
Byte[] boxOfBytes;
try {
byte[] bytes = IOUtils.toByteArray(stream);
boxOfBytes = new Byte[bytes.length];
for (int i=0; i < bytes.length; i++)
{
boxOfBytes[i] = bytes[i];
}
} catch (IOException e) {
logger.error("Exception serializing inputStream: ", e);
throw new RuntimeException(e);
}
return boxOfBytes;
}
}
このプロキシは、起動時に次のように登録されます。
PropertyProxyRegistry.getRegistry().register(InputStream.class, new InputStreamBeanProxy());
このコードにブレークポイントを設定しましたが、期待どおりに呼び出されていることがわかります。ただし、オブジェクトがクライアントに到着すると、入力ストリームはと入力されObject
、プロパティは含まれません。
私は何が間違っているのですか?