0

我有一个应该提供和消费服务的捆绑包。我的应用程序上下文是:

<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 消费的服务 那么,我的问题是:标签不能在一起吗?我如何开发一个捆绑包来消费和提供服务?

提前致谢!

问候!

4

1 回答 1

0

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

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

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

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

于 2011-06-10T14:43:35.013 回答