使用 OSGi 服务动态连接应用程序
1. 启动框架并检查服务
启动框架后,在控制台中查找与timezones捆绑包对应的结果:
osgi> bundles | grep timezones com.packtpub.e4.timezones_1.0.0.qualifier [5] {com.packtpub.e4.timezones.TimeZonesService}={service.id=42}这表明捆绑包 5 已启动一个服务,使用接口com.packtpub.e4.timezones.TimeZonesService,服务 ID 为 42。
也可以使用services命令和 LDAP 风格的过滤器直接查询运行时框架中已知接口类型的服务:
osgi> services "(objectClass=com.packtpub.e4.timezones.TimeZonesService)" {com.packtpub.e4.timezones.TimeZonesService}={service.id=42} "Registered by bundle:" com.packtpub.e4.timezones_1.0.0.qualifier [5] "No bundles using service."可以通过传递service.id使用service命