无法从组件jsp实例化osgi捆绑包类

无法从组件jsp实例化osgi捆绑包类,osgi,aem,sling,Osgi,Aem,Sling,我编写了一个简单的sling组件,它有一个接口,另一个接口是类实现的。 我正在使用maven构建这个bundle jar,我正在从CQ felix控制台安装它。bundle已成功上载,并且处于活动状态 当我试图从组件jsp实例化这个bundle类时,出现了空指针异常,这是因为无法获取该实现类的引用。 下面是实例化bundle类的代码: InvokeAEMWorkflowImpl wfService = sling.getService(InvokeAEMWorkflowImpl.class);

我编写了一个简单的sling组件,它有一个接口,另一个接口是类实现的。 我正在使用maven构建这个bundle jar,我正在从CQ felix控制台安装它。bundle已成功上载,并且处于活动状态

当我试图从组件jsp实例化这个bundle类时,出现了空指针异常,这是因为无法获取该实现类的引用。 下面是实例化bundle类的代码:

InvokeAEMWorkflowImpl wfService = sling.getService(InvokeAEMWorkflowImpl.class);
另外,我还观察到一件事,我无法看到任何与此felix控制台的组件和服务区域(选项卡)相关的内容

有人能帮助我为什么不能在我的组件jsp中引用这个类吗

谢谢,
Kishore

根据您的评论,我假设您已按如下方式注册了该服务:

@Component(immediate=true)
@Service
public class InvokeAEMWorkflowImpl implements InvokeNewWorkflow {
...
根据,
@Service
注释使用所有实现的接口注册服务(在您的例子中是
InvokeNewWorkflow
)。因此,您应该使用此接口从OSGi获取服务:

InvokeNewWorkflow wfService = sling.getService(InvokeNewWorkflow.class);

这是一种很好的编程实践,因此使用接口的类不需要了解任何有关接口的信息。

请发布InvokeAEMWorkflowImpl的源代码(至少是带有SCR注释的类声明)和pom.xml中的maven bundle plugin配置。这是实现类,还包括bundle plugin…@Component(immediate=true)@Service public class InvokeAEMWorkflowImpl实现InvokeNewWorkflow{//这不是完整的结构}我已经按照您的建议尝试过了,但没有成功,我仍然只得到空引用。