`
honno
  • 浏览: 57322 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

OSGI在ServiceMix4.0中的应用

阅读更多

感受OSGI在ServiceMix4.0中的应用
                                        
ServiceMix4介绍
ServiceMix4是一个令人期待的ServiceMix新版本,它不仅支持JBI规范,更重要的是支持OSGI。与ServiceMix3.x相比,对OSGI的支持是它最大的特色。它包括Kernel和NMR两个项目。Kernel是基于OSGI实现框架Flex实现的,它是ServiceMix4的基石;NMR构建于Kernel之上,它是JBI规范的具体实现。

ServiceMix4架构图

 


关于ServiceMix4可以参看这里

关于Kernel可以参看这里


关于NMR可以参看这里


由于ServiceMix4同时支持OSGI和JBI,所以它支持OSGI和JBI这2种部署。部署在ServiceMix3.x上的组件绝大多数可以直接部署在ServiceMix4中。

关于ServiceMix3.x到ServiceMix4的迁移,可以参看这里


下面来看看基于OSGI部署的组件如何部署在ServiceMix4中。


初试ServiceMix4


准备工作

下载ServiceMix4
下载地址:http://servicemix.apache.org/SMX4/download.html

安装ServiceMix4
直接将下载后的文件解压即可。

启动ServiceMix4
直接双击/bin文件夹中的servicemix.bat,片刻之后,就可以启动ServiceMix4。
启动后的界面如下:



基于OSGI的最简单实例


该实例实现了将一个文件夹中的xml文件拷贝到另外一个文件夹中。
代码片段如下:

......
<bean class="org.apache.servicemix.common.osgi.EndpointExporter"/>

<file:poller service="honnom:pollFile" endpoint="pollEndpoint"
             file="honnom/inBox/" targetService="honnom:sendFile" >
</file:poller>

<file:sender service="honnom:sendFile" endpoint="sendEndpoint"
             directory="honnom/outBox/">
</file:sender>
.....

代码介绍
<bean class="org.apache.servicemix.common.osgi.EndpointExporter"/>
使用该bean完成poller和sender的OSGI注册。

<file:poller service="honnom:pollFile" endpoint="pollEndpoint"
             file="honnom/inBox/" targetService="honnom:sendFile" >
</file:poller>
定义一个poller,周期性地从文件夹honnom/inBox中读取xml格式的文件。
<file:sender service="honnom:sendFile" endpoint="sendEndpoint"
             directory="honnom/outBox/">
</file:sender>
定义一个sender,将接收到的文件存放在文件夹honnom/outBox中。


部署

直接将file-osgi.xml拷贝到ServiceMix4的安装目录的deploy下。

运行
ServiceMix4部署完file-osgi.xml后,会在/bin文件夹下生成两个子目录:
honnom/inBox和honnom/outBox。拷贝一个xml格式的文件到inBox中,几秒钟后该文件会被转移到outBox中。

总结
可以看出ServiceMix4的部署更加简单,可以直接通过OSGI部署xml文件,而不需要将xml打包成sa(.zap文件)。当然也可以将xml打包成sa,以JBI组件的方式进行部署。

 

  • 大小: 16.5 KB
  • 大小: 17.5 KB
  • 大小: 25.3 KB
分享到:
评论

相关推荐

    深入理解OSGi:Equinox原理、应用与最佳实践.pdf

    4. 尽量将共享库打包成Fragment Bundle,而不是将它们包含在应用Bundle中。 5. 明确每个Bundle的作用和责任,合理规划 Bundle 的生命周期管理。 6. 使用白名单方式来控制服务的导出和导入,以增强模块的封装性。 7. ...

    基于OSGi和Spring开发Web应用.doc

    在基于 OSGi 和 Spring 的 Web 应用开发中,我们可以使用 Spring-DM 来实现模块化部署和管理。Spring-DM 是 Spring 开发组织在 2008 年发布的,将 OSGi 和 Spring 结合的第一个版本。dm Server 是一个完全模块化部署...

    基于OSGi和Spring开发Web应用

    Spring-DM,即Spring Dynamic Modules,是Spring官方在2008年推出的项目,旨在将Spring框架与OSGi模块化平台相结合,为Java开发者提供了一套全面的工具和API,以支持在OSGi环境中开发、部署和管理Spring应用程序。...

    基于OSGi和Spring开发Web应用教程

    在基于OSGi和Spring开发Web应用中,OSGi(Open Services Gateway Initiative)是一个开放标准,用于创建模块化Java应用程序。它允许开发者将应用程序分解为独立的模块,称为bundle,每个bundle都包含自己的类路径、...

    osgi 在web容器中部署

    在Web容器中部署OSGi应用,特别是像Tomcat这样的流行Servlet容器,可以提高应用的灵活性、可维护性和可扩展性。本文将详细介绍如何使用桥接技术(如Apache Felix的WebConsole或Pax Web)在Tomcat中部署OSGi程序。 ...

    深入理解OSGi:Equinox原理、应用与最佳实践源代码+equinox-SDK-3.8源代码

    8. **案例研究**:通过实际示例,学习如何将Equinox应用于实际项目,如创建插件式应用、实现热更新、以及在企业级应用中集成OSGi。 9. **调试与工具**:了解如何使用Eclipse内置的OSGi工具进行调试,以及如何利用第...

    OSGI 开发文档中文的

    9. **实战应用**:"OSGI实战.pdf"可能包含实际项目案例,演示如何在真实场景中应用OSGI解决特定问题。 通过阅读这份文档和解压后的"dist.rar"和"code.rar"文件,你不仅可以深入了解OSGI技术,还能获得实践经验,...

    基于OSGi和Spring开发Web应用的Demo

    在IT行业中,构建高效、可扩展的Web应用程序是至关重要的,而OSGi(Open Services Gateway Initiative)和Spring框架的结合提供了这样的解决方案。本篇将详细探讨如何基于OSGi和Spring来开发Web应用,并通过提供的...

    深入理解OSGi:Equinox原理、应用与最佳实践,书本源代码

    7. **企业应用集成**:OSGi在企业级应用中发挥着重要作用,尤其是在大型分布式系统中。它可以用来构建微服务架构,简化组件间的通信,提高系统的可扩展性和可维护性。 8. **最佳实践**:书中可能涵盖了如何有效地...

    OSGI中Hibernate扩展在felix中的应用

    标题"OSGI中Hibernate扩展在felix中的应用"指的是如何在OSGI Felix框架中整合和使用Hibernate。Felix是Apache软件基金会的一个项目,它是OSGI规范的开源实现。将Hibernate引入OSGI环境,可以实现更灵活的部署和管理...

    java ClassLoader机制及其在OSGi中的应用

    Java ClassLoader机制是Java虚拟机(JVM)中一个至关重要的组成部分,它的主要任务是将类的.class文件加载到JVM中...理解并掌握ClassLoader的工作原理和在OSGi中的应用,对于开发高效、可扩展的Java应用程序至关重要。

    OSGI应用中整合Spring、Mybatis、Spring MVC案例

    在OSGI(Open Service Gateway Initiative)应用环境中,整合Spring、Mybatis和Spring MVC可以实现模块化、可热更新和高效的企业级应用开发。OSGI是一个Java框架,它允许动态地安装、卸载和升级服务,提供了强大的...

    OSGI 进阶源码和中文文档

    OSGI(Open Services Gateway Initiative)是一种Java模块化系统,它为创建、管理和部署软件提供了灵活...通过这份资料,你可以掌握如何构建、管理和优化基于OSGI的模块化Java应用,从而在复杂的企业级项目中游刃有余。

    《深入理解OSGi:Equinox原理、应用与最佳实践》

    第三部分基于Equinox的OSGi应用与实践,详细介绍了OSGi的服务纲要规范(OSGi ServiceCompendium)和OSGi企业级规范(OSGi ServiceEnterpress)中最常用的几个子规范内容,在这一部分里,将会把OSGi技术从理论落地到...

    osgi 构建模块化云应用之中文版

    在本书中,作者介绍了OSGi的基本概念和高级语义,并且通过实例演示了如何使用Maven、Bndtools等工具来构建OSGi应用。Bndtools是一个强大的构建工具,它带有BND插件,可以帮助开发者打包、测试和调试OSGi Bundles。...

    OSGI整合Spring、Mybatis、Spring MVC实现一个登录应用案例

    在这个案例中,我们将探讨如何整合OSGI、Spring、Mybatis以及Spring MVC来实现一个登录应用。这个教程旨在帮助开发者理解如何在OSGI环境中集成这些流行的Java技术,以构建灵活且可扩展的应用程序。 首先,我们需要...

    利用R-OSGi实现分布式OSGi应用

    利用R-OSGi实现分布式OSGi应用 本文通过介绍传统 OSGi 应用程序及 R-OSGi 的实现方式入手,阐述了 R-OSGi 对于 OSGi 规范的实现方式。然后通过一个简单的功能实现由浅入深地讲述传统 OSGi 和 R-OSGi 上的两种不同...

    在Eclipse RCP中应用Spring OSGI 管理bean(一)

    标题中的“在Eclipse RCP中应用Spring OSGI 管理bean(一)”表明这是一篇关于如何在Eclipse Rich Client Platform (RCP)应用程序中集成Spring框架,并利用OSGi服务来管理Bean的教程。Eclipse RCP是一个用于构建桌面...

Global site tag (gtag.js) - Google Analytics