我使用JBOSS OSGI 7.1
作爲我的項目。 我有2包:ClassCastException在JBOSS OSGI 7.1上
usermanagement (service provider)
jerseyBundle (service consumer)
當我部署並啓動usermanagement
捆綁, 然後部署並啓動球衣束。
jerseyBundle getServiceReference() successful.
然後。 我嘗試重新部署並重新啓動usermanagement
。然後刷新所有包。
JerseyBundle getServiceReference() with Exception: "ClassCastException"
這是代碼,我用它來獲得服務:
public <T> T getService(Class<T> type,List<ServiceReference> _sref) {
try {
ServiceReference sref = bundleContext.getServiceReference(type.getName());
if(sref != null)
{
_sref.add(sref);
}
return type.cast(bundleContext.getService(sref));
} catch (Exception ex) {
ex.printStackTrace();
return null;
}
}
我用的藍圖註冊服務。
我試圖ungetservice,但它沒有解決這個問題。
public void unGetService(List<ServiceReference> _sref) {
try{
while(_sref != null && _sref.size() >0)
{
System.err.println("==============" + bundleContext.ungetService(_sref.remove(0)));
}
}catch(Exception ex){
ex.printStackTrace();
}
}
是否有任何方法重新部署服務提供程序包,不需要重新部署服務消費者包?
當然,這是首先使用OSGi的原因之一。你需要給我們更多的信息(附帶代碼)來幫助你。 –
感謝Arie van Wijngaarden,我只是更新了我的問題。請教我什麼我想念。 –