【问题标题】:Services provider and consumer in Spring DMSpring DM 中的服务提供者和消费者
【发布时间】:2011-06-10 11:48:43
【问题描述】:

我有一个应该提供和使用服务的包。我的应用上下文是:

<bean id="dbConsumer" class="service.User">
    <property name="db" ref="DBservice"></property>
</bean> 

<osgi:reference id="DBservice">
    <osgi:interfaces>
        <value>com.db.manager.DatabaseManager</value>
    </osgi:interfaces>
</osgi:reference>

<bean name="ServicioZB" id="zbservice" class="service.ZBService"/>

<osgi:service  ref="zbservice">
    <osgi:interfaces>
        <value>service.IZBService</value>
    </osgi:interfaces>
</osgi:service>

问题出在我部署的时候。我在 Equinox 上工作,如果我观看服务,我可以看到捆绑使用 DBservice。但是,该服务未公开。但是如果我删除引用标签,我的服务就会暴露出来。也就是说,我有 3 个捆绑包(A、B、C)。 B 导出了 A 使用的服务。另外,C 导出了 B 使用的服务 那么,我的问题是:标签不能在一起吗?我如何开发一个捆绑包来消费和提供服务?

提前致谢!

问候!

【问题讨论】:

    标签: spring osgi equinox


    【解决方案1】:

    如果您只使用发布一个接口,请尝试使用接口属性而不是接口标签。所以替换

     <osgi:service ref="zbservice">
         <osgi:interfaces>
             <value>service.IZBService</value>
         </osgi:interfaces>
     </osgi:service>
    

    与

     <osgi:service ref="zbservice" interface="service.IZBService"/>
    

    我曾经遇到过类似的问题,这种方法确实对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-16
      • 1970-01-01
      • 1970-01-01
      • 2016-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-24
      相关资源
      最近更新 更多