`

camel开源框架简介

阅读更多

camel是实现企业应用集成的开源免费框架,网址:

http://camel.apache.org/

用camel可以很容易实现自动的消息路由和消息转换。基于camel可以将原来复杂和需求经常变化的应用,分解为多个消息生产者和消息消费者程序,这样每个程序更小,更容易设计和部署,需求的改动也不影响其他程序。

 

以下是一个最简单的示例。

这个示例可以特别简单。需要的准备依赖的类库(包括activemq),用maven的配置如下:

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-jms</artifactId>
    <version>1.6.0</version>
</dependency>
<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-core</artifactId>
    <version>5.2.0</version>
</dependency>

安装基于web管理的activemq,参见tomcat下部署activemq

编写代码:

<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->import javax.jms.ConnectionFactory; import org.apache.activemq.ActiveMQConnectionFactory; import org.apache.camel.CamelContext; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.jms.JmsComponent; import org.apache.camel.impl.DefaultCamelContext; public class Helloworld { public static void main(String[] args) throws Exception { CamelContext context = new DefaultCamelContext(); context.addRoutes(new RouteBuilder() { public void configure() { from("jms:test.a").to("file://e:/jms.test"); } }); ConnectionFactory connectionFactory = new ActiveMQConnectionFactory( "tcp://localhost:61616"); context.addComponent("jms", JmsComponent.jmsComponentAutoAcknowledge(connectionFactory)); context.start(); } }

这样只要在test.a队列中发送消息,就会被此程序(守护线程)复制该消息到e盘的jms.test目录。因为注册转换器,所以会有警告:

2009-7-18 12:06:10 org.apache.camel.impl.converter.DefaultTypeConverter addTypeConverter
警告: Overriding type converter from: InstanceMethodTypeConverter: public java.lang.String org.apache.camel.converter.jaxp.XmlConverter.toString(javax.xml.transform.Source) throws javax.xml.transform.TransformerException to: StaticMethodTypeConverter: public static java.lang.String org.apache.camel.converter.IOConverter.toString(javax.xml.transform.Source) throws javax.xml.transform.TransformerException,java.io.IOException

如果想将该消息转发到另外的队列,并作一些处理,可以这样:

<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->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; public class Helloworld { public static void main(String[] args) throws Exception { CamelContext context = new DefaultCamelContext(); context.addRoutes(new RouteBuilder() { public void configure() { from("jms:test.a").to("jms:test.b"); from("jms:test.b").process(new Processor() { public void process(Exchange e) { System.out.println("Received exchange: " + e.getIn()); } }); } }); ConnectionFactory connectionFactory = new ActiveMQConnectionFactory( "tcp://localhost:61616"); context.addComponent("jms", JmsComponent.jmsComponentAutoAcknowledge(connectionFactory)); context.start(); } }
分享到:
评论

相关推荐

    Apache Camel 框架之---JMS路由.docx

    Apache Camel 框架是一个开源的集成框架,提供了一个灵活的方式来连接不同的应用程序和服务。 在这个 Demo 中,我们将学习如何使用 Apache Camel 框架来实现 JMS 路由。首先,我们需要下载并安装 ActiveMQ 消息...

    Apache Camel框架 HTTP相关的jar包

    Apache Camel 是一个强大的开源集成框架,它允许开发者通过声明式的方式连接不同的系统和服务,实现企业级应用程序的集成。这个框架的核心理念是“企业集成模式”(Enterprise Integration Patterns),它提供了丰富...

    Camel服务集成,服务编排操作文档

    Apache Camel 是一个强大的开源框架,专门用于构建企业级应用程序中的集成解决方案。它提供了一种声明式的方式来进行服务集成和服务编排,使得开发者可以方便地连接不同的系统、协议和API,从而构建复杂的数据流。在...

    Camel_应用开发文档.pdf

    Apache Camel 是一个基于 Java 的开源框架,用于集成多种协议、传输和数据格式的应用程序。下面是根据 Camel 应用开发文档生成的相关知识点: 1. Apache Camel 概述 Apache Camel 是一个开源框架,提供了一个统一...

    ApacheCamel-JDBC

    Apache Camel 是一个流行的开源集成框架,它允许开发者以声明式的方式定义路由和转换数据,使得在不同的软件组件之间实现通信变得更加简单。JDBC(Java Database Connectivity)是Java平台中的一个标准API,用于与...

    camel in action 中文版 第一章

    本章节将对 Camel 框架进行介绍, Camel 是一个开源的一体化框架,其目的是使一体化系统更容易。本书的第一章节我们将介绍 Camel 及展示它适合大企事业单位的软件。你将会学习到关于 Camel 的概念及一些专业术语。 ...

    [Camel实战].(Camel.in.Action).Claus.Ibsen&Jonathan;.Anstey.文字版

    - **定义**:Apache Camel 是一个强大的开源框架,它使开发者能够轻松地实现企业级集成模式(Enterprise Integration Patterns, EIP)。该框架提供了简洁而强大的领域特定语言(Domain-Specific Language, DSL),...

    Apache Camel中文开发使用指南.zip

    Apache Camel 是一个强大的开源框架,专门用于构建企业级应用程序中的集成解决方案。它提供了一种声明式的方式,使得开发者可以轻松地定义数据路由和处理规则,从而实现系统间的通信。这个"Apache Camel 开发使用...

    亲测好用——Apache Camel简介以及使用场景.pptx.zip

    Apache Camel 是一个强大的开源框架,主要用于企业集成领域,它提供了模型化的方式来进行应用程序之间的数据交换。这个PPT可能涵盖了以下内容: 1. **Apache Camel 的核心概念** - **DSL (Domain Specific ...

    Camel in action PDF和源代码

    Apache Camel是一款流行的开源项目,它提供了一种声明式的方式来进行企业应用集成。该框架的核心概念是“路由规则”(Routes),这些规则定义了数据流如何在不同系统间传输。Camel支持大量协议和API,包括HTTP、JMS...

    apache camel 简介

    Apache Camel 是一个强大的开源集成框架,它以规则为基础的路由和中介引擎为核心,实现了企业应用模式(EIP,Enterprise Integration Patterns)的POJO化。这个框架的目的是简化不同系统和服务之间的集成,允许...

    Camel.in.Action

    Apache Camel是一个开源的企业级集成框架,它允许开发人员使用Java、XML或Scala等语言以极简的代码实现标准的企业集成模式。Camel框架通过支持超过80种常见的传输方式,如HTTP、REST、JMS和Web Services等,提供了一...

    camel-java-http

    在IT行业中,Apache Camel 是一个广泛使用的开源框架,主要用于构建企业级集成解决方案。它提供了一种声明式的方式来定义路由和转换数据,使得开发者能够轻松地连接各种系统、服务和协议。"camel-java-http" 示例是...

    apache-camel-3.7.0_数据同步_

    Apache Camel 是一个强大的开源框架,专门用于构建企业级集成解决方案。在标题“apache-camel-3.7.0_数据同步_”中提到的“数据同步”,是指利用Apache Camel实现不同系统、数据库或应用程序间的数据交换和一致性...

    ApacheCamel-Timer

    Apache Camel 是一个强大的开源集成框架,它允许开发者通过声明式的方式定义路由和转换数据流,使得构建企业级应用变得更加简单。Timer 组件是 Apache Camel 中的一个重要部分,它提供了定时触发事件的功能,类似于 ...

    apache camel 集成组件 教程

    Apache Camel 是一个强大的开源消息中间件框架,旨在简化企业级应用中的消息处理逻辑。它提供了一种简单而灵活的方式来定义复杂的路由和数据转换规则。Camel 支持多种传输协议和消息中间件,使得开发者能够轻松地在...

    Apache Camel 开发指南.rar

    Apache Camel 是一个强大的开源企业级集成框架,它简化了在Java应用程序之间建立复杂的消息传递流程。这个"Apache Camel 开发指南"压缩包包含了丰富的资源,帮助开发者深入理解Camel的各个方面,包括路由表达式、...

    使用CXF和camel-cxf调用webservice

    Apache CXF和camel-cxf是两个流行的开源框架,它们可以帮助开发者轻松地创建、消费和集成Web服务。本篇文章将详细介绍如何使用CXF和camel-cxf调用Web服务,以及这两个工具的核心功能和使用场景。 Apache CXF是一个...

    Apache Camel 集成组件.rar

    Apache Camel 是一个流行的开源框架,专为构建企业级集成解决方案而设计。它提供了一种声明式的方式,通过一系列称为“组件”(Components)的模块来连接不同的系统、服务和协议。这些组件使得开发人员能够轻松地...

Global site tag (gtag.js) - Google Analytics