我可以在 OSGI 容器中使用多个服务注册表吗?我想以类似交易的方式在它们之间切换
问问题
91 次
1 回答
1
您是指 OSGi 服务注册表——调节依赖关系和模块之间交互的框架的核心——还是指外部的,可能是远程的服务注册表(SOAP、.NET Web 服务等)?
如果您指的是 OSGi 服务注册表——不,这是不可能的。OSGi 服务注册是框架核心功能的一部分。它负责模块(包)之间的数据共享,这是通过 OSGi 服务(实现不同接口的对象)完成的。它与包依赖处理、OSGI 安全性和其他核心功能紧密集成,并且可以通过每个包的系统对象 BundleContext 访问。没有可能覆盖或扩展它,即使有,它也会由于许多原因在框架中造成严重破坏 - 例如,有像 ConfigurationAdmin 这样的单例服务不应该被复制。
但是,如果您指的是 Web 服务(或 OSGi 核心之外的其他类型的服务)的注册表,那么是的,这是可能的。事实上,这些类型的注册表可能也会在 OSGi 中注册为服务,您可以在它们之间进行选择或在它们之间切换。
于 2012-11-13T16:09:09.150 回答