我制作了一个捆绑包,它在OSGI容器中部署,现在处于活动状态,并提供一些服务。
我还有另一个使用这些服务的软件包和一个服务,即 SlingRepository ,以获得管理员预先在Apache Jachrabbit中创建节点。
第二个包就是使用第一个包中编写的实现。
为此,我编写了在Activate annotation of Second bundle中运行第一个bundle的代码。
但是,当我部署第二个分发包时,会显示Null
进行会话。
@Reference
session = repository.loginadministrataive(null);
然后,我尝试另一种方法,在其中我在第一个包中创建一个类,而不是为此创建另一个类,即实现BundleActivator接口的Activator类。但这表明同样的问题。
你能告诉我怎样才能解决这个问题?
你能告诉我如何使用第二个捆绑包运行第一个捆绑包吗?
提前致谢。看看你的回复。
答案 0 :(得分:4)
关于这样一行代码的@Reference是错误的,请查看Sling示例以获取更多信息。
Slingbucks sample,例如使用@Reference来获取SlingRepository,您可以将其作为起点。
此外,您可能不需要激活器,声明性服务注释应该足够,您将在示例中看到。