Spring DM中的服务提供商和消费者

时间:2011-06-10 11:48:44

标签: spring osgi equinox

我有一个应该提供和完善服务的捆绑。我的申请背景是:

<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消耗的服务然后,我的问题是:标签不能在一起吗?我怎样才能开发出捆绑产品并提供服务?

提前致谢!

问候!

1 个答案:

答案 0 :(得分:0)

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

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

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

我有一次类似的问题,这种方法对我有用。