Jcr(Modeshape)二进制内容可序列化

时间:2011-11-25 22:19:38

标签: jcr modeshape

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

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

Project使用ehcache缓存解决方案。此缓存机制应扩展到我的二进制内容。 为了使它工作,我需要将节点的内容变成实现Serializable的东西。

我的第一个目标是Binary,使用content.getProperty(“jcr:data”)。getBinary() 但是我得到了错误,因为Binary没有实现Serializable。

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

有什么建议吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

找到了办法......

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

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

感谢。