Читать строку с шестнадцатеричными символами из Redis - PullRequest
0 голосов
/ 10 апреля 2020

Попытка чтения и десериализации объекта, сохраненного как значение Redis.

127.0.0.1: 6379> получить A11017B69A179631D4DCB719B6CBCB8C "\ xac \ xed \ x00 \ x05sr \ x00Dcom.orangefunction.tomcat.redissessions.SessionSerializationMetadata ...

100 * * 100 * * В результате
данные содержат следующие байты:

-17, -65, -67, -17, -65, -67, 0, 5, 115, 114

Это приводит к исключению, когда я пытаюсь установить его в ObjectInputStream :

BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(data));
ObjectInputStream ois = new ObjectInputStream(bis)

java .io.StreamCorruptedException: недействительно заголовок потока: EFBFBDEF в java .io.ObjectInputStream.readStreamHeader (ObjectInputStream. java: 866) в java .io.ObjectInputStream. (ObjectInputStream. java: 358)

Исключение выдается, потому что ObjectInputStream ожидает следующий заголовок, который фактически существует в значении Redis:

   final static short STREAM_MAGIC = (short)0xaced;
...