Sling 从 java 代码访问 JCR 'var' 资源

Sling acces to JCR 'var' resource from java code

我是 Sling 的初学者,我想找到一种方法来访问 JCR 的 /var 资源并创建文件。

我尝试使用 ResourceResolver 但我找不到路径,如下例所示 request.getResourceResolver().getResource("var"); 它 returns null.

SlingHttpServletRequest得到resourceResolver是个好办法吗?

首先,JCR 路径应始终以 / 开头。所以你的代码几乎是正确的。

变化:

request.getResourceResolver().getResource("var");

收件人:

request.getResourceResolver().getResource("/var");

如果您的 ResourceResolver 具有读取 /var 的权限,您将获得 Resource。否则,你会得到 null。如果您从 request 获得 ResourceResolver,则权限取决于发出请求的用户的权限。

Getting resourceResolver from SlingHttpServletRequest is a good way to get it?

视情况而定。关于"where to get your ResourceResolver"的说法很多,但是为了简单起见:

If you want to limit access to a resource based on a users permissions, you should get the ResourceResolver from a request. In all other situations, get the ResourceResolver from the ResourceResolverFactory.

ResourceResolverFactory 是它自己的兔子洞。所以我会指出你的文档:

https://sling.apache.org/apidocs/sling9/org/apache/sling/api/resource/ResourceResolver.html