如何将文本内容保存为aem中的jcr:data属性?

时间:2017-08-05 17:19:59

标签: java groovy osgi aem

我有一个节点,其中包含许多存储为"cards": [ { "id": 1, "storyId": 3, "mediaUri": "http://localhost/api/docs#!/admin/postStory", "mediaType": "image", "favouriteCards": { "createdAt": "2017-08-05T11:45:29.000Z", "updatedAt": "2017-08-05T11:45:29.000Z", "cardId": 1, "userId": 1 } } ] 属性的文本。我可以从中读取并通过此jcr:data代码在控制台中显示它:

groovy

现在我想更改此文本中的一些字符,并将其重新设置为InputStream content = node.getNode("jcr:content").getProperty("jcr:data") .getStream() println(content.text) //it shows me its content = text 属性。我试过了:

jcr:data

但这会引发错误:

ValueFactory factory = session.getValueFactory()
InputStream is = new ByteArrayInputStream(Charset.forName("UTF-8")
                     .encode(content.text.replaceAll("xx", "yy").array())
Binary binary = factory.createBinary(is)
Value value = factory.createValue(binary)
node.setProperty("jcr:data", value)

1 个答案:

答案 0 :(得分:1)

你记得导入javax.jcr.Binary吗?

Esit:您在.array()

之前缺少一个括号