1

Eclipse4アプリケーションプラットフォームに基づくRCPアプリケーションを開発しています。私のアプリケーションは、宣言型サービスとして実装されたいくつかの独自のOSGiバンドルで構成されています。IEventBroker今、私は自分のアプリケーションで非常にうまく利用できるサービスを利用したいと思っています。

しかしIEventBroker、別のバンドルでサービスを使用することは可能ですか?フィールドとしてサービスを挿入しても機能しません:

@Inject IEventBroker eventBroker; 

また、クラスのコンストラクターにサービスを挿入しても機能しません。

@Inject
public TestUserService(IEventBroker eventBroker) {
..
}

注入されるのeventBrokerNULL毎回です。IEventBroker一般的に、独自のOSGiバンドルでの使用は可能ですか?必要なプラグインをバンドルに追加する必要がありますか?そのようなサービスを独自のOSGiバンドルに組み込む別の方法はありますか?

4

2 に答える 2

1

@Inject は純粋なバンドルでは機能しません。Activator か、Blueprint や DS などの依存性注入メカニズムを使用する必要があります。

したがって、上記のメカニズムのいずれかを使用して IEventBorker を OSGi サービスとしてルックアップし、それをクラスに挿入してみてください。

于 2012-11-19T11:06:05.300 に答える