我使用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,我只是更新了我的问题。请教我什么我想念。 –