gpt4 book ai didi

java - OSGi - 按名称 (id) 获取 ds 服务

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:14:21 24 4
gpt4 key购买 nike

我是 OSGi 的新手。我用谷歌搜索了大约几个小时,但找不到答案。也许我的理解是错误的。所以问题。假设我有一个组件。

<component name="sample.component" immediate="true">
<implementation class="sample.SampleComparator" />
<service>
<provide interface="java.util.Comparator" />
</service>
</component>

在代码中:

ServiceReference[] serviceReferences = 
bundleContext.getServiceReferences(
java.util.Comparator.class.getName(), "(name=sample.component)");

但是我得到了 null。错误在哪里? filter (name=sample.component) 对吗?或者如何设置服务的 ID 并通过它进行查找?

最佳答案

服务属性的名称是“component.name”,而不是“name”。

如果你这样做,它会起作用:

getServiceReferences(java.util.Comparator.class.getName(),"(component.name=sample.component)");

关于java - OSGi - 按名称 (id) 获取 ds 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22832936/

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