2016-12-13 2 views
0

Я пытаюсь ввести DependencyManager в свой компонент. Вводится BundleContext, но DependencyManager не является (@Inject). Что я делаю не так?OSGi инъекция зависимого менеджера

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"); 
    } 
} 
+0

Вы пытались использовать аннотацию «@ServiceDependency», а не «@Inject» для менеджера? –

+0

Да, у меня есть. Я нашел «проблему». Я использовал две версии менеджера зависимостей. Теперь я заставил одну версию работать. – OblongZebra

ответ

1

Я нашел «проблему». В моем проекте 2 разных версии менеджера зависимостей, где они используются. После принудительного использования одной версии она работает.

Смежные вопросы