1

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

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

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

为此,我编写代码在第二个包的激活注释中运行第一个包。但是当我部署第二个 bundle 时,它​​会显示Null为会话。

@Reference
session = repository.loginadministrataive(null);

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

你能告诉我如何解决这个问题吗?

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

提前致谢。寻找您的友好答复。

4

1 回答 1

4

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

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

此外,您可能不需要 Activator,声明式服务注释就足够了,您将在示例中看到这一点。

于 2013-06-21T10:12:51.740 回答