3
残念ながら、解決済みの参照でプログラムでosgiサービスを作成する方法が見つかりませんでした。 OSGiはシングルトンオブジェクトとしてサービスを作成することはよく知られている事実です。何らかの理由で、新しいサービスインスタンスを手動で作成する必要があります。OSGIサービスをプログラムでプログラムで作成できますか?
場合:
@Service(ICasualService.class)
@Component(immediate = true, label = "Casual Service")
public class CasualService implements ICasualService {
@Reference
private ConfigurationAdmin configurationAdmin;
}
バンドルコンテキストを使用したが、私は私のサービスを登録することができる午前:
private BundleContext bundleContext;
ICasualService casualService = new CasualService();
Dictionary props = new Properties();
bundleContext.registerService(ICasualService.class.getName(), casualService, props);
しかし、このようconfigurationAdminは新しい作成されたサービスでnullです。
質問は、サービスの新しいインスタンスをプログラムで作成できるかどうかです。
ありがとうございます。
UPDATE:ソリューションはFelix(OSGi実装)で動作するはずです。
ありがとうございます!できます。さらに、この方法で適切な設定パラメータを持つ新しいサービスをthis.factory.newInstance(Dictionary)メソッドに渡すことで作成することができます。 2.サービスの新しいインスタンスを作成します(.newInstance(null)の場合、毎回同じオブジェクトを返します)。 –