I am running res client (Redisson) on wildfly server and for few cache key. I am getting below exception.
Same code works on SpringBoot and standalone Java program. But fails on Wildfly.
Any help/suggestion is appreciated.
Caused by: java.io.IOException: java.io.IOException: :Failed to instantiate ‘com.xxxx.columnInfo.StandardColumnInfo’. Register a custom serializer implementing instantiate or define empty constructor.
at deployment.pc.ear//org.nustaq.serialization.FSTObjectInput.readObject(FSTObjectInput.java:247)
at deployment.pc.ear//org.redisson.codec.FstCodec$1.decode(FstCodec.java:250)
at deployment.pc.ear//org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:375)
at deployment.pc.ear//org.redisson.client.handler.CommandDecoder.decodeList(CommandDecoder.java:419)
at deployment.pc.ear//org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:384)
at deployment.pc.ear//org.redisson.client.handler.CommandDecoder.decodeList(CommandDecoder.java:419)
at deployment.pc.ear//org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:384)
at deployment.pc.ear//org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:196)
at deployment.pc.ear//org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:134)
at deployment.pc.ear//org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:104)
at deployment.pc.ear//io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:501)
at deployment.pc.ear//io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)
2
Answers
For now I overridden BasicCodec and wrote my own codec class. Which works fine as SerializationCode.
I would suggest you to use MarshallingCodec as FSTCodec has a stability issues. Even Redisson has made Marshalling Codec as its default codec. The best part is that it can serialize almost all objects.