我需要在JCR中存储一个字符串,该字符串将在OSGi包中使用(以便可以在CRXde中根据需要进行修改)我将我的字符串存储在/etc/designs/shc/components/linkcheck/regex.txt/jcr:content
位置,其中regex.txt
是包含我的文件正则表达式字符串。
我正在使用以下代码读取捆绑中的String但没有运气。它在NullPointerException
投掷resourceResolver.getResource
Resource dataResource = resourceResolver.getResource("/etc/designs/shc/components/linkcheck/regex.txt/jcr:content");
Node node = dataResource.adaptTo(Node.class);
String regex = node.getProperty("jcr:data").getValue().toString();
regex.txt
的类型为nt:file
,数据在CRXde中可见,但代码失败。
任何方向将受到高度赞赏!
这应该工作 -
Resource dataResource = resourceResolver.getResource("/etc/designs/shc/components/linkcheck/regex.txt");
Node jcnode = dataResource.adaptTo(Node.class).getNode("jcr:content");
InputStream is = jcnode.getProperty("jcr:data").getBinary().getStream();
StringBuilder sb = new StringBuilder();String line;
try {
br = new BufferedReader(new InputStreamReader(is));
while ((line = br.readLine()) != null) {
sb.append(line);
}
} catch (IOException e) {
//do something
}
//do whatever with sb
由于在resourceResolver.getResource(...)处抛出NullPointerException,请检查resourceResolver是否为null。