- 浏览: 7338914 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
在一个电子系统中可能接受来自不同供应商的各种订单信息,不同类型的订单走的流程不尽相同,为了快速处理各种不同的订单完成不同的业务。特定义不同的路由信息。根据路由信息的不同,将消息进行不同的处理。如果采用ActiveMQ那么最好采用apache-camel整合,使不同的消息根据不同的流程自动处理到不同的队列中去。
采用的jar文件如下:
<?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src"/> <classpathentry kind="src" path="resources"/> <classpathentry kind="src" path="message"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="con" path="melibrary.com.genuitec.eclipse.springframework.MYECLIPSE_SPRING20_CORE"/> <classpathentry kind="con" path="melibrary.com.genuitec.eclipse.j2eedt.core.MYECLIPSE_JAVAEE_5_CONTAINER"/> <classpathentry kind="lib" path="src/activemq-all-5.5.0.jar"/> <classpathentry kind="lib" path="src/activemq-pool-5.5.0.jar"/> <classpathentry kind="lib" path="src/camel-core-2.7.0.jar"/> <classpathentry kind="lib" path="src/camel-jetty-2.7.0.jar"/> <classpathentry kind="lib" path="src/camel-jms-2.7.0.jar"/> <classpathentry kind="lib" path="src/log4j-1.2.14.jar"/> <classpathentry kind="lib" path="src/slf4j-log4j12-1.5.11.jar"/> <classpathentry kind="lib" path="src/commons-management-1.0.jar"/> <classpathentry kind="lib" path="resources/commons-logging-1.1.1.jar"/> <classpathentry kind="lib" path="src/camel-spring-2.7.0.jar"/> <classpathentry kind="lib" path="src/org.springframework.aop-3.0.4.RELEASE.jar"/> <classpathentry kind="lib" path="src/org.springframework.asm-3.0.4.RELEASE.jar"/> <classpathentry kind="lib" path="src/org.springframework.aspects-3.0.4.RELEASE.jar"/> <classpathentry kind="lib" path="src/org.springframework.beans-3.0.4.RELEASE.jar"/> <classpathentry kind="lib" path="src/org.springframework.context-3.0.4.RELEASE.jar"/> <classpathentry kind="lib" path="src/org.springframework.context.support-3.0.4.RELEASE.jar"/> <classpathentry kind="lib" path="src/org.springframework.core-3.0.4.RELEASE.jar"/> <classpathentry kind="lib" path="src/org.springframework.expression-3.0.4.RELEASE.jar"/> <classpathentry kind="lib" path="src/org.springframework.instrument-3.0.4.RELEASE.jar"/> <classpathentry kind="lib" path="src/org.springframework.instrument.tomcat-3.0.4.RELEASE.jar"/> <classpathentry kind="lib" path="src/org.springframework.jdbc-3.0.4.RELEASE.jar"/> <classpathentry kind="lib" path="src/org.springframework.jms-3.0.4.RELEASE.jar"/> <classpathentry kind="lib" path="src/org.springframework.orm-3.0.4.RELEASE.jar"/> <classpathentry kind="lib" path="src/org.springframework.oxm-3.0.4.RELEASE.jar"/> <classpathentry kind="lib" path="src/org.springframework.transaction-3.0.4.RELEASE.jar"/> <classpathentry kind="lib" path="src/org.springframework.web-3.0.4.RELEASE.jar"/> <classpathentry kind="lib" path="src/org.springframework.web.portlet-3.0.4.RELEASE.jar"/> <classpathentry kind="lib" path="src/org.springframework.web.servlet-3.0.4.RELEASE.jar"/> <classpathentry kind="lib" path="src/org.springframework.web.struts-3.0.4.RELEASE.jar"/> <classpathentry kind="lib" path="src/jetty-all-server-7.1.6.v20100715.jar"/> <classpathentry kind="lib" path="src/jetty-websocket-7.1.6.v20100715.jar"/> <classpathentry kind="output" path="bin"/> </classpath>
package easyeway.mq.app.demo1; import javax.jms.ConnectionFactory; import org.apache.activemq.ActiveMQConnectionFactory; import org.apache.camel.CamelContext; import org.apache.camel.Exchange; import org.apache.camel.Processor; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.jms.JmsComponent; import org.apache.camel.impl.DefaultCamelContext; /** * 设置一系列观察一个目录中新订单情况的路由信息,获取文件,并转换为相关的JMS消息 *,发送他们到不同的对应的不同队列中。进行相关的处理。 * * @author longgangbai * */ public class OrderRouterWithRecipientListBean { public static void main(String args[]) throws Exception { // create CamelContext //创建一个CamelContext CamelContext context = new DefaultCamelContext(); // connect to embedded ActiveMQ JMS broker //创建一个ActiveMQ类型 连接工厂 ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("vm://localhost"); //采用JMS组件发送消息 context.addComponent("jms", JmsComponent.jmsComponentAutoAcknowledge(connectionFactory)); // add our route to the CamelContext //添加自定义路由信息到CamelContext context.addRoutes(new RouteBuilder() { @Override public void configure() { // load file orders from src/data into the JMS queue //从src/data加载文件订单生成生成jms,将消息放到jms队列中 //src/data为定义的接受订单的目录 from("file:src/data?noop=true").to("jms:incomingOrders"); // content-based router //根据路由信息将消息从队列总分配到本地不同的其他消息中 from("jms:incomingOrders") .choice() .when(header("CamelFileName").endsWith(".xml")) .to("jms:xmlOrders") .when(header("CamelFileName").regex("^.*(csv|csl)$")) .to("jms:csvOrders") .otherwise() .to("jms:badOrders"); //将消息进行相关的业务处理 from("jms:xmlOrders").bean(RecipientListBean.class); // test that our route is working //业务逻辑的处理过程 from("jms:accounting").process(new Processor() { public void process(Exchange exchange) throws Exception { System.out.println("Accounting received order: " + exchange.getIn().getHeader("CamelFileName")); } }); from("jms:production").process(new Processor() { public void process(Exchange exchange) throws Exception { System.out.println("Production received order: " + exchange.getIn().getHeader("CamelFileName")); } }); } }); // start the route and let it do its work context.start(); Thread.sleep(2000); // stop the CamelContext context.stop(); } }
package easyeway.mq.app.demo1; import org.apache.camel.RecipientList; import org.apache.camel.language.XPath; /** * Recipient List bean that sends orders to the production and * accounting queues if the order originated from a gold customer. * Otherwise, the order is only sent to the accounting queue. * * The recipient list annotation is used to accomplish this. * * @author longgangbai * */ public class RecipientListBean { /** * 根据路由中订单信息用户的信息判断是否是金卡用户 * @param customer * @return */ @RecipientList public String[] route(@XPath("/order/@customer") String customer) { if (isGoldCustomer(customer)) { return new String[] {"jms:accounting", "jms:production"}; } else { return new String[] {"jms:accounting"}; } } private boolean isGoldCustomer(String customer) { return customer.equals("honda"); } }
发表评论
-
ActiveMQ的拦截器插件
2011-07-22 09:29 6609ActiveMQ拦截器使用和原 ... -
ActiveMQ的各种表SQL的管理
2011-07-20 20:58 3513在ActiveMQ为了方便的切换数据库,更为了深入 ... -
ActiveMQ中advisory的使用和原理
2011-07-20 18:46 2906在ActiveMQ中的监控和管理也可以通过Advisory实现 ... -
ActiveMQ的异步转发(DispatchAsync)功能
2011-07-20 11:29 47031. 消息者异步转发功能 针对正常情况下,在一个 ... -
ActiveMQ 的独占消费(Exclusive Consumer)
2011-07-20 11:26 4100我们经常希望维持队列中的消息,按一定次序转发给消息者。然而当有 ... -
ActiveMQ5.5在Tomcat6.0中部署
2011-07-19 22:27 2925在ActiveMQ中监控管理Web组件为ActiveMQCon ... -
Window 下ActiveMQ端口冲突,负载均衡,主备配置
2011-07-17 16:03 5531在Java 学习中Window操作系 ... -
ActiveMQ中消息权限策略
2011-07-17 00:31 2671在ActiveMQ发送消息的时候,可以通过MessageAut ... -
ActiveMQ和Jetty整合使用
2011-07-07 22:49 5589在ActiveMQ中的activemq.b ... -
ActiveMQ 和Commons-Daemon整合
2011-07-07 20:13 2943在一般的java项目中,如果在linu ... -
关于ActiveMQ中怎么实现一对多发送消息讨论
2011-07-07 19:50 6069无 ... -
ActiveMQ 中ActiveMQBlobMessage的接收和发送
2011-07-05 10:47 5127在ActiveMQ中对比较大的消息采用一 ... -
ActiveMQ 和JAXWS整合
2011-07-04 22:02 2214在多个系统中可能考虑到远程访问等的,采用WebServ ... -
ActiveMQ模板和Velocity整合使用
2011-07-01 19:50 2309ActiveMQ模板使用 在ActiveMQ中AMQ ... -
ActiveMQ中消息游标
2011-06-30 18:16 2658在 ActiveMQ 5.0的之前版本中,b ... -
ActiveMQ和Tomcat的整合应用
2011-06-30 17:00 11214在ActiveMQ的资源让容器Tomcat管理时 ... -
ActiveMQ关于文件传输需要注意哪些方面?
2011-06-18 22:11 6186最近一直在关注一些文件传输中间件的实现,想用Acti ... -
关于ActiveMQ中Session和Connection资源的管理
2011-06-15 23:43 25106配置完了持久化之后,我们就可以使用代码来发送 ... -
ActiveMQ中关于文件锁的机制的学习
2011-06-14 23:31 3339在ActiveMQ中提供了文件数据库机 ... -
ActiveMQ的JMX监控使用
2011-06-10 17:26 13157package easyway.app.activemq.d ...
相关推荐
activemq-camel-5.5.0.jar
在本项目中,我们探索了如何整合ActiveMQ、Apache Camel和Spring框架来创建一个基于JMS(Java消息服务)的应用程序。这个Demo是系列的第二部分,它建立在上一部分的基础之上,深入介绍了如何实际操作这些组件以实现...
3. **camel-core-1.5.0.jar**:Apache Camel是一个用于构建集成解决方案的框架,允许开发者使用各种协议和数据格式进行通信,可能在这里用于ActiveMQ与其他系统的集成。 4. **jaxb-impl-2.0.3.jar** 和 **jaxb-api-...
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用