ServiceMix入门(4):构建第一个使用Camel路由的简单集成解决方案----移动文件升级版(结合MQ使用)

it2022-05-05  239

我们继续接着上一篇来讲,继续参照着官方的开发指南往下讲  http://servicemix.apache.org/docs/6.x/quickstart/quickstart.pdf

 

开箱即用,每个Apache ServiceMix实例都附带一个嵌入式ActiveMQ JMS代理。这使得使用同一台机器上的持久消息在驼峰路由之间进行通信变得很容易,但是它也使您能够在以后将路由分布到多个实例上进行集群或负载平衡

在这个场景中,我们还希望在目录之间移动文件。我们不直接记录迁移,而是将事件JMS消息发送到队列。然后,我们将创建第二个驼峰路由来接收事件并记录它们。

我们将创建的第一个Blueprint XML文件包含一个camel路由,它将文件从activemq/input移动到activemq/output目录。然后,它将生成一个事件消息并将其发送到一个名为events的ActiveMQ队列。

第一个 Blueprint XML文件, 保存这个文件为moveFile.xml到servicemix安装目录下的deploy目录中

<?xml version="1.0" encoding="UTF-8"?> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"> <camelContext xmlns="http://camel.apache.org/schema/blueprint"> <route> <from uri="file:activemq/input"/> <to uri="file:activemq/output"/> <setBody> <simple> FileMovedEvent(file: ${file:name}, timestamp: ${date:now:hh:MM:ss.SSS}) </simple> </setBody> <to uri="activemq://events" /> </route> </camelContext> </blueprint>

 

第一个 Blueprint XML文件, 保存这个文件为receiveFile.xml到servicemix安装目录下的deploy目录中

<?xml version="1.0" encoding="UTF-8"?> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"> <camelContext xmlns="http://camel.apache.org/schema/blueprint"> <route> <from uri="activemq://events"/> <to uri="log:events"/> </route> </camelContext> </blueprint>

下面,我们使用上一帖子中介绍的简单指令来查看下这个bundle的运行状态。 

再安装activeMQ的web控制台查看event队列的消息

使用指令feature:install activemq-web-console

安装完成后,通过bundle:list | grep activemq-web-console查看控制台的状态是否为Active

访问地址  http://localhost:8181/activemqweb/index.jsp 进入控制台,用户名/密码 : smx/smx

查看events队列中是否有移动文件的消息,如果在访问的过程中出现了异常,参见小编编写的前几篇帖子,对于小编在学习的过程中遇到的异常以及解决方法有一个记录

至此,官方的快速入门指南中的第二个Demo也操作完成了,接下来,自己开发一个webservice接口部署到servicemix中练习一下吧,参加下一篇


最新回复(0)