Я пытаюсь сериализовать экземпляр класса Scala, используя Kryo через библиотеку Chill-Scala Twitter. Это из библиотеки (внешняя банка), поэтому, я думаю, ее нужно зарегистрировать в Kryo.
Как зарегистрировать класс для (де)сериализации с помощью chill-scala?
Вот ядро моего кода, основанное главным образом на изучении набора тестов chill-scala.
// This is from the chill-scala test suite
def serialize[T](t: T): Array[Byte] = ScalaKryoInstantiator.defaultPool.toBytesWithClass(t)
def deserialize[T](bytes: Array[Byte]): T =
ScalaKryoInstantiator.defaultPool.fromBytes(bytes).asInstanceOf[T]
/**
* Save a value in cache.
*/
def save[T](key: String, value: T, expiration: Int = 0): Future[T] = {
cache.put(key, serialize[T](value), expiration, TimeUnit.SECONDS)
Future.successful(value)
}
/**
* Finds a value in the cache.
*/
def find[T: ClassTag](key: String): Future[Option[T]] = Future {
val result = deserialize[T](cache.get(key).asInstanceOf[Array[Byte]])
Option(result)
}
Когда я запускаю его, он бросает
com.esotericsoftware.kryo.KryoException: Unable to find class: <name_of_external_class>
В общем, есть ли где-нибудь документация по использованию chill-scala? Авторы этого пакета, очевидно, проделали значительный объем работы, и я видел ряд положительных ссылок на него, но никакой документации.
Спасибо за любые указатели,
Байрон