在一个捆绑包中,有一个由类ServiceImpl实现的IService接口:

public interface IService
{
    void doSomething();
}

@Component
@Provides
@Instantiate
public class ServiceImpl implements IService
{
    public void doSomething()
    {
    }
}

在第二个包中,使用第一个包中提供的服务,我还有另一个类ServiceConsumer(GoGo shell命令;不包括特定注释):
@Component
@Provides
@Instantiate
public class ServiceConsumer
{
    @Requires
    private IService service;

    public doIt()
    {
        service.doSomething();
    }

}

当我在Felix中导入并启动两个捆绑软件时,可以看到使用ipojo:instances正确实例化了我的所有服务,并且ServiceImpl提供了IService。但是,执行doIt()时,服务为null。

由于IService似乎可用,因此我希望@Requires注入好实例,但似乎不这样做。

我有一种明显的感觉,我没有做,但是我不知道该怎么做。

最佳答案

您还创建了metadata.xml吗?
请在这里查看示例http://felix.apache.org/site/ipojo-in-10-minutes.html

afaik你也可以使用maven插件生成它
看到这里http://felix.apache.org/site/ipojo-hello-word-maven-based-tutorial.html

08-06 11:22