会话在使用SlingRepository服务时显示为null,为什么?

时间:2013-06-21 09:04:54

标签: adobe cq5 jackrabbit jcr sling

我制作了一个捆绑包,它在OSGI容器中部署,现在处于活动状态,并提供一些服务。

我还有另一个使用这些服务的软件包和一个服务,即 SlingRepository ,以获得管理员预先在Apache Jachrabbit中创建节点。

第二个包就是使用第一个包中编写的实现。

为此,我编写了在Activate annotation of Second bundle中运行第一个bundle的代码。 但是,当我部署第二个分发包时,会显示Null进行会话。

@Reference
session = repository.loginadministrataive(null);

然后,我尝试另一种方法,在其中我在第一个包中创建一个类,而不是为此创建另一个类,即实现BundleActivator接口的Activator类。但这表明同样的问题。

你能告诉我怎样才能解决这个问题?

你能告诉我如何使用第二个捆绑包运行第一个捆绑包吗?

提前致谢。看看你的回复。

1 个答案:

答案 0 :(得分:4)

关于这样一行代码的@Reference是错误的,请查看Sling示例以获取更多信息。

Slingbucks sample,例如使用@Reference来获取SlingRepository,您可以将其作为起点。

此外,您可能不需要激活器,声明性服务注释应该足够,您将在示例中看到。