osgi中services总是通过serviceReference来访问的,他唯一对应一个service对象
要访问一个服务,以下步骤是必须的:
1。获取serviceReference引用
2。通过BundleContext.getService()获取服务对象实例
而获取ServiceReference的方式有以下几种:
1。直接通过BundleContext.getService()显式获得
2。直接通过BundleContext.getServices()显式获得
3。在ServiceListener中使用回调
4。使用工具类ServiceTracker类
在以上几种情况下(除了第一种),允许客户端指定一系列的属性,通过这些属性来排除不符合的服务对象。这些属性通过LDAP过滤器来指定。一个典型的过滤器包含一个类名和一系列的属性。
当获取到ServiceReference实例之后,service对象则很容易获取:
HttpService http = (HttpService)bundleContext.getService(sr)
做完这些,则服务对象即为可用的了,该服务对象是一个普通的java类,说的更具体些,就是你在bundle注册的时候,创建的那个service对象.
分享到:
相关推荐
7. **HTTP Service**:HTTP 服务提供了基于 HTTP 协议的访问接口,使得 OSGi 束能够轻松地处理 Web 请求。 #### 六、结论 **OSGi Service Platform Service Compendium** 是一份重要的文档,为 OSGi 技术的使用者...
OSGi(Open Service Gateway Initiative)是一种Java模块化系统,它为创建、部署和管理软件组件提供了一种强大而灵活的方式。在Java世界中,OSGi被视为解决大型复杂应用系统中模块化问题的有效解决方案。下面我们将...
**OSGi (Open Service Gateway Initiative)** 是一个为 Java 定义模块化系统的框架。它支持将应用程序和服务分解为可重用的组件,并在运行时动态安装、卸载、启动、停止和更新这些组件,无需重启整个系统。 **OSGi ...
OSGi(Open Service Gateway Initiative)是一个开放标准,它定义了一种模块化系统,用于在Java平台上构建动态、可管理的应用程序。这个技术最初的目标是为家庭网络设备提供服务网关,但随着时间的推移,其应用范围...
OSGi 服务发布和获取方式是 OSGi 框架中的一种核心机制,用于发布和获取服务。下面将详细介绍 OSGi 服务发布和获取的多种方式。 1. 最原始方式 最原始方式是 OSGi 服务发布和获取的基本方式。这种方式的优点是逻辑...
通过阅读《Pro Spring Dynamic Modules for OSGi Service Platforms 2009》,开发者不仅可以掌握OSGi和Spring DM的核心原理,还能学习到如何在实际项目中有效地利用这些技术,以实现更灵活、可维护的企业级Java应用...
服务参考(Service Reference)对象提供了访问注册服务的详细信息,包括服务的优先级、服务质量等,可用于选择最合适的服务实例。服务引用可以用来获取服务实例,进一步进行服务的使用。 总之,OSGi服务是构建模块化...
标题和描述中提到的“基于OSGI的RCP测试 2 Standard”指的是使用OSGi(Open Service Gateway Initiative)框架进行Rich Client Platform(RCP)应用程序的第二阶段标准化测试。OSGi是一种Java模块化系统,用于创建可...
### 关于《Pro Spring Dynamic Modules for OSGi Service Platforms》的知识点解析 #### 一、OSGi简介 **OSGi**(Open Service Gateway Initiative)是一个为服务网关设备定义了一个完整的模块化系统和服务规范,...
项目状况声纳云该项目中定义的服务no.priv.bang.osgiservice.database.DatabaseService 提供对实际JDBC数据库实例的访问。 实施此服务的DS组件通常: 接收DataSourceFactory服务从该DataSourceFactory中: 创建一个...
2. **Service**:是bundle之间通信的机制,允许bundle以松散耦合的方式互相协作。 3. **生命周期**:bundle有安装、解析、启动、暂停、停止和卸载等状态,通过OSGi框架进行管理。 4. **类加载器**:每个bundle有自己...
- **安全性**:OSGi提供了一种安全模型,可以限制bundle的访问权限,防止恶意代码对系统造成破坏。 总结,OSGi是一种强大的模块化系统,能够帮助开发者构建更加灵活、可扩展和易于维护的Java应用程序。通过理解其...
Spring OSGi是Spring框架与OSGi(Open Service Gateway Initiative)规范相结合的一种技术,它允许在OSGi容器中运行和管理Spring应用。OSGi是一种模块化系统,为Java应用程序提供了动态部署、版本控制和依赖管理的...
在OSGi环境中,服务是模块间通信的主要手段,而服务的发布和获取是OSGi核心概念之一。本文将深入探讨OSGi常用的服务发布和获取方式。 一、服务发布 1. **ServiceRegistration**: 当一个模块想要提供服务时,它会...
你需要在Bundle的清单文件(MANIFEST.MF)中声明对这些服务的依赖,如`Import-Package: org.osgi.service.http;version="[1.2,2.0)"`。 7. **启动HTTP服务** 在你的Bundle激活方法中,获取HTTP服务的引用,然后...
10. **安全性**:OSGi环境中也需要考虑安全策略,如限制bundle的权限,控制服务访问,以及使用SslContexts确保网络通信的安全。 学习和实践OSGi Web示例工程有助于理解如何在模块化环境中构建和管理复杂的Web应用,...
在OSGi(Open Service Gateway Initiative)环境中配置Spring事务可能会遇到一些挑战,因为OSGi的模块化特性使得依赖管理和类加载机制与传统的Java应用不同。这篇博客文章“解决osgi spring 事务配置问题”可能深入...
Spring OSGi 是一个将 Spring 框架与 OSGi(Open Service Gateway Initiative)容器相结合的开源项目,旨在提供一种在 OSGi 环境下使用 Spring 的方式。OSGi 是一种模块化系统,它允许开发人员创建可热部署、可升级...
而Web服务(Web Service)则是一种基于网络的、平台无关的交互方式,它允许不同系统之间的数据交换。本教程将指导你如何在OSGi环境中开发和部署Web服务。 **OSGi与Web服务的结合** OSGi和Web服务的结合使得开发者...