2017-12-21 11 views
1

私はmaven-bundle-plugin 3.3.0とOSGI R6を使用しています。maven-bundle-pluginで同じ名前の複数の参照

私は次のクラスがあります。MVNクリーンインストールを実行した後

//Class A 
@Component (immediate = true, service = {}) 
public class A{ 
    private static B myB; 
    @Reference (unbind = "unbindB") 
    public static void bindB(B pB) 
    { 
     myB = pB; 
    } 

    public static void unbindB() 
    { 
     myB= null; 
    } 
} 



//B class. It does not implement any interface. Hence, the service must be itself 
@Component (immediate = true, service = B.class) 
public class B{ 
@Activate 
    public void activate(){ 
     //B activated 
    } 
} 

を、Mavenのバンドル・プラグイン3.3.0は私にエラーを与える:

Bundle com.X:bundle:0.0.1-SNAPSHOT : In component com.X.A, multiple references with the same name: myB. Previous def: com.X.B, this def: 
[ERROR] Error(s) found in bundle configuration 

はあなたのいずれかが何を知っていますそれは間違っていますか?

答えて

1

バインド/バインド解除メソッドは静的にすることはできません。あなたのコードはそれらを静的なものとして示します。 DSコンポーネントは常にインスタンスベースです。

+1

この状態でエラーメッセージが正しく表示されない –

+0

どちらも正しいです。エラーメッセージが改善される可能性があります – raullalves

関連する問題