我有一个应该提供和完善服务的捆绑。我的申请背景是:
<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消耗的服务然后,我的问题是:标签不能在一起吗?我怎样才能开发出捆绑产品并提供服务?
提前致谢!
问候!
答案 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"/>
我有一次类似的问题,这种方法对我有用。