首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IPOJO组件没有正确地公开服务。

IPOJO组件没有正确地公开服务。
EN

Stack Overflow用户
提问于 2018-07-17 17:01:14
回答 1查看 83关注 0票数 1

我有ipojo组件,如

代码语言:javascript
复制
@Component(immediate = true)
@Provides
public class MyComponent implements MyService
{

@Override
    public boolean islock()
    {
        return true;
    }

}

当我使用以下命令部署在karaf中时

代码语言:javascript
复制
bundle:install -s mvn:com.my.osgi/mycomponent/0.0.1

如果我做了service:list at karaf控制台,它会显示输出,如

代码语言:javascript
复制
[org.apache.felix.ipojo.Factory] 
    -------------------------------- 
     component.class = com.my.osgi.mycomponent 
     component.description = factory name="com.my.osgi.mycomponent" 
bundle="77" state="valid" implementation-class="com.my.osgi.mycomponent" 
            requiredhandlers list="[org.apache.felix.ipojo:properties, 
org.apache.felix.ipojo:callback, org.apache.felix.ipojo:provides, 
org.apache.felix.ipojo:architect 
    ure]" 
            missinghandlers list="[]" 
            provides specification="com.my.osgi.mycomponent" 
            inherited interfaces="[com.my.osgi.mycomponent]" 
superclasses="[]" 
     component.providedServiceSpecifications = [com.my.osgi.mycomponent] 
     factory.name = com.my.osgi.mycomponent 
     factory.state = 1 
     service.bundleid = 77 
     service.id = 153 
     service.pid = com.my.osgi.mycomponent 
     service.scope = singleton 

但我期待着像下面这样,

代码语言:javascript
复制
[com.my.osgi.mycomponent] 
    ----------------------------------------------------- 
    instance.name = mycomponent.3c2c91a5-4c28-46c3-a08e-1470192ef353 
     service.bundleid = 76 
     service.factoryPid = com.my.osgi.mycomponent 
     service.id = 397 
     service.pid = 
com.my.osgi.mycomponent.3c2c91a5-4c28-46c3-a08e-1470192ef353 
     service.scope = bundle 

我做错什么了?我在和maven一起建房子。

编辑:一个观察,作为这个包在一个更大的应用程序中工作,当这个get部署日志是

代码语言:javascript
复制
2018-07-17T12:03:50,011 | DEBUG | [iPOJO] pool-1-thread-1 | my-component | 38 - com.my.osgi.my-component  - 1.0.3 | ServiceEvent REGISTERED - [org.apache.felix.ipojo.architecture.Architecture] - com.my.osgi.my-component
2018-07-17T12:03:50,021 | DEBUG | [iPOJO] pool-1-thread-1 | my-component | 38 - com.my.osgi.my-component  - 1.0.3 | ServiceEvent REGISTERED - [com.my.osgi.my-component]                         - com.my.osgi.my-component
2018-07-17T12:03:50,021 | DEBUG | [iPOJO] pool-1-thread-1 | my-component | 38 - com.my.osgi.my-component  - 1.0.3 | ServiceEvent MODIFIED -   [com.my.osgi.my-component]                         - com.my.osgi.my-component
2018-07-17T12:03:50,021 | DEBUG | [iPOJO] pool-1-thread-1 | my-component | 38 - com.my.osgi.my-component  - 1.0.3 | ServiceEvent MODIFIED -   [com.my.osgi.my-component]                         - com.my.osgi.my-component
2018-07-17T12:03:50,021 | DEBUG | [iPOJO] pool-1-thread-1 | my-component | 38 - com.my.osgi.my-component  - 1.0.3 | ServiceEvent MODIFIED -   [com.my.osgi.my-component]                         - com.my.osgi.my-component
2018-07-17T12:03:50,021 | DEBUG | [iPOJO] pool-1-thread-1 | my-component | 38 - com.my.osgi.my-component  - 1.0.3 | ServiceEvent REGISTERED - [org.apache.felix.ipojo.Factory] - com.my.osgi.my-component

但在我的例子中只有两行

代码语言:javascript
复制
2018-07-17T11:45:43,624 | DEBUG | [iPOJO] pool-1-thread-1 | my-component  | 11 - com.my.osgi.my-component - 2.0.4.SNAPSHOT | ServiceEvent REGISTERED - [org.apache.felix.ipojo.extender.TypeDeclaration] - com.my.osgi.my-component
2018-07-17T11:45:43,654 | DEBUG | [iPOJO] pool-1-thread-1 | my-component  | 11 - com.my.osgi.my-component - 2.0.4.SNAPSHOT | ServiceEvent REGISTERED - [org.apache.felix.ipojo.Factory] - com.my.osgi.my-component  

那么这个架构在做什么,什么被修改了呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-18 15:51:26

只需在组件类上添加@实例化注释即可。或者,您可以使用:

  • iPOJO工厂服务(http://felix.apache.org/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-advanced-topics/ipojo-factory-service.html)
  • Config Admin (http://felix.apache.org/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-advanced-topics/combining-ipojo-and-configuration-admin.html)
  • 带有@Configuration注释的类
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51386792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档