Nab*_*ilS 2 java jackrabbit jcr sling
我无法使用以下代码在apache吊索中为jackrabbit创建新的自定义类型.这在Jackrabbit上运行良好,但在Apache Sling上没有.我是否正确地为吊索做这件事?谢谢
以下代码为我提供了"javax.jcr.InvalidItemStateException:Conflict".我使用独立的吊索,是唯一的用户,所以绝对没有冲突.
Repository repository = JcrUtils.getRepository("http://localhost:8080/server");
Session session = repository.login(new SimpleCredentials("admin", "admin".toCharArray()));
NamespaceRegistry registry = session.getWorkspace().getNamespaceRegistry();
registry.registerNamespace("my", "http://my.com/v1.0");
CndImporter.registerNodeTypes(new FileReader("C:\\test.cnd"), session);
Run Code Online (Sandbox Code Playgroud)
如果你正在使用Sling,你可以通过将你的CND文件放在一个OSGi包中(你的java代码应该驻留在那里)来避免这一切,并使用一个标题告诉Sling在哪里找到它.
激活捆绑包后,将自动注册您的节点类型.有关此示例,请参阅event.snd文件,该文件在Sling-Nodetypes包头中声明,该头文件在该模块的pom.xml中设置(或者如果您不使用Maven ,则以任何其他方式).
另请注意,您不应该在Sling中使用JcrUtils.getRepository,获取存储库的正确方法是通过SlingRepository OSGi服务,该服务以一致的方式为所有Sling组件处理存储库登录和配置.您可以通过@Reference将存储库获取到Java代码中的SlingRepository,或者从Sling提供的Resource获取JCR会话以请求servlet和脚本等处理程序.该Slingbucks样品使用这两种机制.
| 归档时间: |
|
| 查看次数: |
875 次 |
| 最近记录: |