OSGi在ServiceMix4中的应用

开发 后端
本文向您介绍OSGI在ServiceMix4中的应用。ServiceMix4不仅支持JBI规范,更重要的是支持OSGi,本文将详细介绍ServiceMix4的应用过程。

 ServiceMix4介绍

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

51CTO编辑推荐:OSGi入门与实践全攻略

ServiceMix4架构图

OSGi架构图

关于ServiceMix4和Kerne可以参考相关文档。

Kerne架构中的OSGi

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

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

初试ServiceMix4

准备工作

下载ServiceMix4

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

安装ServiceMix4

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

启动

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

启动后的界面如下:

ServiceMix4启动界面

基于OSGI的最简单实例

该实例实现了将一个文件夹中的xml文件拷贝到另外一个文件夹中。

代码片段如下:

  1. <bean class="org.apache.servicemix.common.osgi.EndpointExporter"/> 
  2.  
  3. <file:poller service="honnom:pollFile" endpoint="pollEndpoint" 
  4.              file="honnom/inBox/" targetService="honnom:sendFile" > 
  5. file:poller> 
  6.  
  7. <file:sender service="honnom:sendFile" endpoint="sendEndpoint" 
  8.              directory="honnom/outBox/"> 
  9. file:sender> 

代码介绍


使用该bean完成poller和sender的OSGI注册。

             file="honnom/inBox/" targetService="honnom:sendFile" >

定义一个poller,周期性地从文件夹honnom/inBox中读取xml格式的文件。
             directory="honnom/outBox/">

定义一个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组件的方式进行部署。

【编辑推荐】

  1. 浅析Apache Felix项目中的OSGi
  2. GlassFish是什么?基于OSGi的Web服务器
  3. 初探OSGi Web容器:控制Web程序的生命周期
  4. OSGI实战和进阶
  5. OSGi为什么重要:向模块化转移的主攻手
责任编辑:佚名 来源: JavaEye
相关推荐

2009-09-29 09:16:23

启动bundleOSGi

2012-06-25 11:47:14

ibmdw

2009-06-10 16:58:42

GlassFishOSGi模式

2009-03-03 10:06:00

IBMJavaOSGi

2009-12-21 13:34:41

OSGi

2009-09-28 13:32:39

OSGi入门

2009-06-18 15:24:08

Spring OSGi

2009-10-22 11:03:20

OSGi Web应用程

2009-06-01 11:20:21

OSGi服务规范非赢利机构

2010-07-14 14:01:00

IMAP4服务器

2017-12-18 11:24:58

大数据电子商务企业

2009-06-01 11:37:46

EquinoxOSGi服务器

2009-06-18 10:03:57

EquinoxOSGi应用服务器

2017-09-04 14:40:00

LimitLatchTomcat线程

2020-05-22 10:40:33

ContinuatioJS前端

2009-02-27 16:22:34

AjaxProAjax.NET

2023-03-24 09:07:22

SignalsJavaScript应用

2009-06-01 10:28:03

SpringOSGi整合

2009-10-15 15:12:39

Equinox服务器端Equinox

2020-09-25 07:27:09

物联网水资源监测系统商业建筑
点赞
收藏

51CTO技术栈公众号