2017-08-05 73 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

相關問題