1

Modeshape 2.6.0 を使用しています。バイナリ コンテンツとメタデータの 2 種類のコンテンツがあります。

バイナリは、CR ノードの jcr:data プロパティに保存されます。content.getProperty("jcr:data").getBinary()... (コンテンツのタイプは Node) を介してコンテンツを取得しています

プロジェクトは、ehcache キャッシュ ソリューションを使用します。このキャッシュ メカニズムは、バイナリ コンテンツに拡張する必要があります。それを機能させるには、ノードのコンテンツを Serializable を実装するものにする必要があります。

私の最初のターゲットはバイナリでした。

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

それを行う方法を見つけました...

contentNode.getProperty("jcr:data").getBinary().getStream() から読み取っているバイトを書き込んでいる ByteArrayOutputStream オブジェクトを構築しています。最後に、bout.toByteArray() から byte[] をカプセル化するオブジェクト (Serializable を実装する、私が作成したクラスのインスタンス) を返します。

それを行うためのより良い方法があれば、共有してください。

ありがとう。

于 2011-11-27T11:59:31.133 に答える