Я пытался сериализовать одну из своих записей в удобочитаемый формат. Пока сериализация с использованием сериализатора Java работала нормально, я пытаюсь использовать print-dup. Проблема, с которой я столкнулся, заключается в том, что при записи записи все идет нормально, чтение записи приводит к clojure.lang.LispReader$ReaderException: java.lang.ClassNotFoundException: common.dummy.Doodh. Я путаю пространства имен или что-то в этом роде? Обратите внимание, что это не проблема с сериализацией Java. Код ниже в простейшем виде
(ns common.dummy)
(defrecord Doodh [id name])
(defn output [filename obj]
(def trr(map->Doodh {:id "moooh" :name "Cows"}))
(def my-string (binding [*print-dup* true] (pr-str trr)))
(spit filename my-string)
)
(defn pull [filename]
(def my-data (with-in-str (slurp filename) (read)))
(println my-data)
)
содержимое текстового файла:
#common.dummy.Doodh["moooh", "Cows"]