2017-08-05 71 views
0

我有一个节点,其中包含大量以jcr:data属性存储的文本。我可以从中读出,并通过该groovy代码在控制台中显示出来:如何将文本内容保存为aem中的jcr:data属性?

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) 

但是,这引发了一个错误:

unexpected token: Binary 

回答

1

你记得导入javax.jcr.Binary?

ESIT:你.array()之前缺少一个括号

+0

是的,我有这样的进口...它仍然没有看到'Binary'虽然...但是,也许还有周围的一些其他的方式把我自己的内容写入'jcr:data',而不是使用'Binary'? – user3766930

+0

嘿男人,在数组()后右失了括号做了诡计,谢谢你注意到它! – user3766930

相关问题