1

我正在使用 Modeshape 2.6.0。我有两种类型的内容:二进制内容和元数据..

二进制文件保存在 CR 节点的 jcr:data 属性中。我通过 content.getProperty("jcr:data").getBinary()...(其中内容是节点类型)获取内容

项目使用ehcache缓存解决方案。这个缓存机制应该扩展到我的二进制内容。为了让它工作,我需要把节点的内容变成实现 Serializable 的东西。

我的第一个目标是二进制,通过使用 content.getProperty("jcr:data").getBinary() 但我得到下面的错误,因为二进制没有实现可序列化。

23:44:49,255 错误 [net.sf.ehcache.store.compound.factories.DiskStorageFactory] ​​7690f9c6-a6f0-412e-ba47-b8e43f77d1af 的磁盘写入失败(它将被驱逐)::java.io.NotSerializableException:org .modeshape.jcr.JcrBinary

有什么建议吗?

谢谢你。

4

1 回答 1

1

找到了一种方法来做到这一点......

我正在构建一个 ByteArrayOutputStream 对象,bout,我在其中写入从 contentNode.getProperty("jcr:data").getBinary().getStream() 读取的字节。最后,我返回了一个对象(我编写的实现 Serializable 的类的实例),它封装了来自 bout.toByteArray() 的 byte[]

如果有更好的方法,请分享。

谢谢。

于 2011-11-27T11:59:31.133 回答