【问题标题】:OSGi injection of dependencymanagerOSGi注入依赖管理器
【发布时间】:2016-12-13 16:38:01
【问题描述】:

我正在尝试将DependencyManager 注入到我的组件中。 BundleContext 被注入,但 DependencyManager 不是 (@Inject)。我做错了什么?

import org.apache.felix.dm.DependencyManager;
import org.apache.felix.dm.annotation.api.Component;
import org.apache.felix.dm.annotation.api.Init;
import org.apache.felix.dm.annotation.api.Inject;
import org.apache.felix.dm.annotation.api.Start;
import org.osgi.framework.BundleContext;

@Component
public class InjectionExample
{
    @Inject
    BundleContext bundleContext;

    @Inject
    DependencyManager manager;

    @Init
    void init()
    {
        System.out.println("Bundle Context: " + bundleContext);
        System.out.println("Manager: " + manager);
    }

    @Start
    void start()
    {
        System.out.println("start");
    }
}

【问题讨论】:

  • 您是否尝试过为经理使用“@ServiceDependency”注释而不是“@Inject”?
  • 是的,我有。我发现了“问题”。我使用了两个版本的依赖管理器。现在我强制使用一个版本。

标签: osgi apache-felix felix-dependency-manager


【解决方案1】:

我发现了“问题”。在我的项目中,使用了 2 个不同版本的依赖管理器。强制使用一个版本后,它可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-16
    • 2014-11-01
    • 1970-01-01
    • 2012-06-25
    • 1970-01-01
    相关资源
    最近更新 更多