反序列化列表列时出错<;用户类型>;从datastax驱动程序中的cassandra查询输出

反序列化列表列时出错<;用户类型>;从datastax驱动程序中的cassandra查询输出,cassandra,datastax,Cassandra,Datastax,反序列化方法: override def deserialize(bytes: ByteBuffer, protocolVersion: ProtocolVersion): UserType = { Option(bytes) match { case Some(value) if value.remaining == 0 => throw new Exception(s"Cannot Deserialize empty bytes Array!!!! $this.getCl

反序列化方法:

override def deserialize(bytes: ByteBuffer, protocolVersion: ProtocolVersion): UserType = {

Option(bytes) match {
  case Some(value) if value.remaining == 0 =>
    throw new Exception(s"Cannot Deserialize empty bytes Array!!!! $this.getClass")
  case Some(value) =>
    val byteArray = new Array[Byte](bytes.remaining)
    bytes.duplicate.get(byteArray)
    objectMapper.readValue[java.util.List[UserType]] (byteArray, classOf[java.util.List[UserType]] ).get(0)
  case _ =>
    null
}
}

我能够通过自定义编解码器读取列的字节。但是,它的反序列化由于错误而失败

java.io.CharConversionException:无效的UTF-32字符0x314c5555 (高于0x0010ffff)在字符3处,字节15)在 com.fasterxml.jackson.core.io.UTF32Reader.reportInvalid(UTF32Reader.java:195) 在 com.fasterxml.jackson.core.io.UTF32Reader.read(UTF32Reader.java:158) 在 com.fasterxml.jackson.core.json.ReaderBasedJsonParser.\u loadMore(ReaderBasedJsonParser.java:250) 在 com.fasterxml.jackson.core.json.ReaderBasedJsonParser.\u skipWSOrEnd(ReaderBasedJsonParser.java:2354) 在 com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:672) 在 com.fasterxml.jackson.databind.ObjectMapper.\u initForReading(ObjectMapper.java:4340) 在 com.fasterxml.jackson.databind.ObjectMapper.\u readMapAndClose(ObjectMapper.java:4189) 在 com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3266)

如何对接收到的字节进行反序列化

cassandra中的类型定义是

CREATE TYPE canada_catalog.UserType (id text, flag1 BOOLEAN,flag2 BOOLEAN);

Cassandra列的类型为“冻结”

为什么不直接使用java驱动程序中的对象映射器?为什么不直接使用java驱动程序中的对象映射器?