在一个捆绑包中,有一个由类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