在RCP中应用OSGI的DS(Declarative Service)服务,特别要注意各个Bundle(插件)的启动顺序,其中org.eclipse.equinox.ds_1.0.0.v20080427-0830.jar(DS服务的Bundle)这个Bundle要比其他需要DI Service的Bundle启动要早,同时又要比它依赖的Bundle启动要迟。equinox的DS插件依赖如下:
1.org.eclipse.osgi.services_3.1.200.v20071203.jar
2.org.eclipse.equinox.util_1.0.0.v20080414.jar(该插件又依赖1)
所以启动DS时如果设置了启动级别就要确保上面两个Bundle已经启动了,我们以一个RCP导出的conf.ini配置文件为例,其部分内容如下:
osgi.bundles.defaultStartLevel=4
osgi.bundles=org.eclipse.equinox.common@2:start,org.eclipse.update.configurator@3:start,
org.eclipse.core.runtime@start,org.eclipse.equinox.ds@3:start
我们可以看到默认的Bundle的启动级别为4,我们这里把ds的Bundle的启动级别设置为3,这样可以保证在其他Bundle启动前启动DS服务,同时其依赖的两个Bundle也会在它之前启动:-)
另外,如果某个Bundle使用DS发现无法引用service,请确保该bundle已经启动了(处于Activate状态),因为只有启动了的Bundle才可以激活Component。调试RCP程序,可以在导出的RCP程序的eclipse.exe(根据你的product的配置不同而不同)所在的目录建立startup.bat文件,内容如下:
eclipse -console
保存后双击运行该批处理即可以看到OSGI的命令提示符,然后就可以通过命令来查看各个bundle的基本信息和状态了,可以通过ss来查看指定的bundle是否已经启动了,从而来判断component是否被激活:)
分享到:
相关推荐
标题中的“在Eclipse RCP中应用Spring OSGI 管理bean(一)”表明这是一篇关于如何在Eclipse Rich Client Platform (RCP)应用程序中集成Spring框架,并利用OSGi服务来管理Bean的教程。Eclipse RCP是一个用于构建桌面...
12章)系统讲解了Eclipse RCP应用开发的基础知识、Eclipse RCP软件产品各个组成部分的构建方法,以及Eclipse RCP扩展的使用和扩展点的开发,掌握这些技术知识的读者将能构建一个结构完整的Eclipse RCP软件,并解决...
在基于OSGi的RCP应用程序中,各个组件(如视图、编辑器)可以被封装为独立的OSGi bundles,这样可以实现模块化的开发和部署。开发者可以轻松地添加、更新或移除应用的特定部分,而不会影响整个应用的稳定性。此外,...
比较好的OSGi学习教程,分享给大家,简单易学...。。。
8. **测试策略**:在 "osgi_component_test" 中,可能包含了单元测试、集成测试,用于验证 OSGi 组件的功能、交互和依赖关系,确保 RCP 应用程序的正确性和稳定性。 9. **配置文件**:OSGi 组件的配置通常存储在 ...
在RCP中,OSGI作为底层的模块化框架,为RCP提供了动态加载和管理插件的能力。开发者可以通过创建OSGI Bundle来构建RCP插件,这些插件可以在运行时被RCP框架动态加载和卸载。这种结合使得RCP应用具备了高度的灵活性和...
在"eclipse rcp应用系统开发方法与实战源代码.zip"中,我们可以学习到以下关键知识点: 1. **Eclipse RCP架构**:理解Eclipse RCP的基础架构非常重要,包括插件(Plugins)、工作台(Workbench)、视图(Views)、...
然后,你需要在应用程序启动配置中指定你的自定义splashscreen类。这样,当应用程序启动时,自定义的启动画面就会先于主应用程序界面显示。 在压缩包文件"rcpf1"中,可能包含了项目源码、配置文件以及资源文件,...
5. **命令和服务**:Eclipse RCP中的命令(Command)和服务(Service)机制,用于实现应用的可扩展性和互操作性,读者将学习如何定义和使用这些组件。 6. **透视图和工作台**:透视图(Perspective)定义了工作空间...
在RCP应用中,业务逻辑通常由命令(Command)和控制器(Handler)实现。命令定义了用户可以执行的操作,而控制器则负责执行这些操作。在`plugin.xml`中定义命令,并创建对应的控制器类。 7. **事件监听与通信** ...
在本文中,我们将深入探讨如何在Eclipse Rich Client Platform (RCP)应用程序中集成和显示JFreeChart报表。JFreeChart是一个强大的Java库,用于创建各种图表类型,如折线图、柱状图、饼图等,而RCP是Eclipse框架的一...
2. **新建 RCP 应用程序项目**:选择 "File" > "New" > "Other",然后在 "Project" 分类中找到 "Eclipse Application" 并点击 "Next"。 3. **配置项目**:输入项目名称(例如 "HelloWorldRCP"),选择所需的模板,并...
在这个"SWT应用的开发实例:没有使用到OSGi"中,我们将会探讨如何在不依赖OSGi(OSGi - Open Service Gateway Initiative)框架的情况下,利用SWT创建一个功能完备的应用程序。OSGi是一种模块化系统,常用于Java应用...
- **运行预览**:在插件清单编辑器的Overview页面中,可以通过点击“Launch Eclipse application”链接来预览RCP应用的运行效果。 #### 四、RCP应用的核心组件 创建完RCP应用后,Eclipse会自动生成一系列的核心组件...
Eclipse Rich Client Platform...通过这些源代码,开发者不仅可以学习Eclipse RCP的理论知识,还能动手实践,深入理解每个概念在实际项目中的应用。对于想要提升Eclipse RCP开发技能的人来说,这是一个非常宝贵的资源。
非常好的一本JAVA RCP入门实战的书,兼顾理论和实战。
在IT行业中,RCP(Rich Client Platform)是Eclipse框架提供的一种用于构建桌面应用程序的平台。它允许开发者基于已有的框架构建复杂、可扩展的应用,而无需从零开始编写所有基础架构。本篇文章将深入探讨如何在RCP...
在“基于Eclipse RCP的复合应用”中,我们可以理解这是一篇关于如何利用Eclipse RCP框架来构建复杂、模块化的桌面应用的文章或教程。IBM中国研发中心的专家们对此进行了深入研究和实践,分享了他们的经验和见解。IBM...