我需要在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中可见,但代码失败。
任何方向都将受到高度赞赏!
答案 0 :(得分:1)
这应该有用 -
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
答案 1 :(得分:0)
由于在resourceResolver.getResource(...)处抛出NullPointerException,请检查resourceResolver是否为null。