Я интегрирую OSGi Equinox, GWT как связку и Spring Dynamic Modules.Сначала я проверяю GWT-пакет без услуг, и он запускается.Теперь я хочу вызвать внешний сервис с Spring Dynamic Modules.Это мои XML-файлы для объявления и использования сервиса:
<bean name="ServicioZB" id="zbservice" class="service.ZBService"/>
<osgi:service ref="zbservice" interface="service.IZBService"/>
И:
<osgi:reference id="service">
<osgi:interfaces>
<value>service.IZBService</value>
</osgi:interfaces>
</osgi:reference>
В GreetingServiceImpl у меня есть свойство zb и setter / getter:
private IZBService zb;
public IZBService getZb() {
return zb;
}
public void setZb(IZBService zb) {
this.zb = zb;
}
public boolean greetServer(String input, String input2) throws Exception {
return this.zb.checkUser();
}
Если в Equinox введите «services», я смогу просмотреть все услуги и потребителей.Он показывает следующее:
{service.IZBService}={org.springframework.osgi.bean.name=zbservice, Bundle-SymbolicName=zbservice, Bundle-Version=3.0.0, service.id=56}
Registered by bundle: zbservice_3.0.0 [56]
Bundles using service:
ZBGWTApp_1.0.0 [57]
Затем отображается служба, и мое приложение ZBGWTApp является потребителем.Все кажется правильным.Однако, если я отлаживаю приложение, когда я разрываю поток в строке zb.checkUser (), значение zb равно NULL.То есть сервисная ссылка не вводится, почему?