gpt4 book ai didi

java - 使用声明式服务时,如何同时获得服务对象和服务引用

转载 作者:行者123 更新时间:2023-12-04 04:48:26 24 4
gpt4 key购买 nike

当我在 osgi 中使用我的 Bundle 时,我需要 ServiceReference 和 Service Object。但是,当我按照下面的代码所示进行操作时,我的包不再能找到绑定(bind)方法。我究竟做错了什么?

public class AServiceImpl implements AService{

TestService t;
JournalService journalService;
BundleContext context;
ServiceReference testServiceRef;

public void bindTestService(TestService testService, ServiceReference sv) {
t = testService;
testServiceRef = sv;
//this.testServiceRef = testServiceRef;
test.api.TestStaticVariable.getUniqueInstance().add("TEST A");
System.out.println(test.api.TestStaticVariable.getUniqueInstance().toString());
}

public void unbindTestService(TestService testService){
System.out.println("");
if(t.equals(testService)){
t = null;
}
}

public void bindJournalService(JournalService journalService){
this.journalService = journalService;
}

public void unbindJournalService(JournalService journalService){
if(this.journalService.equals(journalService)){
this.journalService = null;
}
}
}

最佳答案

参见 OSGi 纲要 4.3 的第 112.3.2 节,地址为 https://osgi.org/download/r4v43/osgi.cmpn-4.3.0.pdf。 .

所以只需使用 ServiceReference并通过组件上下文获取对象,如 112.3.2 中所述。

关于java - 使用声明式服务时,如何同时获得服务对象和服务引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17811873/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com