Jcr (Modeshape) Двоичный контент Сериализуемый - PullRequest
1 голос
/ 26 ноября 2011

Я использую Modeshape 2.6.0. У меня есть два типа контента: двоичный контент и метаданные ..

Двоичный файл сохраняется в свойстве jcr: data узла CR. Я получаю содержимое через content.getProperty ("jcr: data"). GetBinary () ... (где содержимое имеет тип Node)

В проекте используется решение для кэширования ehcache. Этот механизм кэширования должен быть расширен до моего двоичного содержимого. Чтобы заставить его работать, мне нужно передать содержимое узла во что-то, реализующее Serializable.

Моей первой целью был Binary с использованием content.getProperty ("jcr: data"). GetBinary () Но я получаю ошибку ниже, так как Binary не реализует Serializable.

23: 44: 49,255 ОШИБКА [net.sf.ehcache.store.compound.factories.DiskStorageFactory] Запись на диск 7690f9c6-a6f0-412e-ba47-b8e43f77d1af не удалась (будет удалена вместо):: java.io. NotSerializableException: org.modeshape.jcr.JcrBinary

Есть предложения?

Спасибо.

1 Ответ

1 голос
/ 27 ноября 2011

Нашел способ сделать это ...

Я строю объект ByteArrayOutputStream, где я пишу байты, которые я читаю из contentNode.getProperty ("jcr: data«) .getBinary (). GetStream ().Наконец, я возвращаю объект (экземпляр класса, который я написал, который реализует Serializable), который инкапсулирует byte [] из bout.toByteArray ()

Если есть лучшие способы сделать это, пожалуйста, поделитесь.

Спасибо.

...