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 框架是一个开源的集成框架,提供了一个灵活的方式来连接不同的应用程序和服务。 在这个 Demo 中,我们将学习如何使用 Apache Camel 框架来实现 JMS 路由。首先,我们需要下载并安装 ActiveMQ 消息...
Apache Camel 是一个强大的开源集成框架,它允许开发者通过声明式的方式连接不同的系统和服务,实现企业级应用程序的集成。这个框架的核心理念是“企业集成模式”(Enterprise Integration Patterns),它提供了丰富...
Apache Camel 是一个强大的开源框架,专门用于构建企业级应用程序中的集成解决方案。它提供了一种声明式的方式来进行服务集成和服务编排,使得开发者可以方便地连接不同的系统、协议和API,从而构建复杂的数据流。在...
Apache Camel 是一个基于 Java 的开源框架,用于集成多种协议、传输和数据格式的应用程序。下面是根据 Camel 应用开发文档生成的相关知识点: 1. Apache Camel 概述 Apache Camel 是一个开源框架,提供了一个统一...
Apache Camel 是一个流行的开源集成框架,它允许开发者以声明式的方式定义路由和转换数据,使得在不同的软件组件之间实现通信变得更加简单。JDBC(Java Database Connectivity)是Java平台中的一个标准API,用于与...
本章节将对 Camel 框架进行介绍, Camel 是一个开源的一体化框架,其目的是使一体化系统更容易。本书的第一章节我们将介绍 Camel 及展示它适合大企事业单位的软件。你将会学习到关于 Camel 的概念及一些专业术语。 ...
- **定义**:Apache Camel 是一个强大的开源框架,它使开发者能够轻松地实现企业级集成模式(Enterprise Integration Patterns, EIP)。该框架提供了简洁而强大的领域特定语言(Domain-Specific Language, DSL),...
Apache Camel 是一个强大的开源框架,专门用于构建企业级应用程序中的集成解决方案。它提供了一种声明式的方式,使得开发者可以轻松地定义数据路由和处理规则,从而实现系统间的通信。这个"Apache Camel 开发使用...
Apache Camel 是一个强大的开源框架,主要用于企业集成领域,它提供了模型化的方式来进行应用程序之间的数据交换。这个PPT可能涵盖了以下内容: 1. **Apache Camel 的核心概念** - **DSL (Domain Specific ...
Apache Camel是一款流行的开源项目,它提供了一种声明式的方式来进行企业应用集成。该框架的核心概念是“路由规则”(Routes),这些规则定义了数据流如何在不同系统间传输。Camel支持大量协议和API,包括HTTP、JMS...
Apache Camel 是一个强大的开源集成框架,它以规则为基础的路由和中介引擎为核心,实现了企业应用模式(EIP,Enterprise Integration Patterns)的POJO化。这个框架的目的是简化不同系统和服务之间的集成,允许...
Apache Camel是一个开源的企业级集成框架,它允许开发人员使用Java、XML或Scala等语言以极简的代码实现标准的企业集成模式。Camel框架通过支持超过80种常见的传输方式,如HTTP、REST、JMS和Web Services等,提供了一...
在IT行业中,Apache Camel 是一个广泛使用的开源框架,主要用于构建企业级集成解决方案。它提供了一种声明式的方式来定义路由和转换数据,使得开发者能够轻松地连接各种系统、服务和协议。"camel-java-http" 示例是...
Apache Camel 是一个强大的开源框架,专门用于构建企业级集成解决方案。在标题“apache-camel-3.7.0_数据同步_”中提到的“数据同步”,是指利用Apache Camel实现不同系统、数据库或应用程序间的数据交换和一致性...
Apache Camel 是一个强大的开源集成框架,它允许开发者通过声明式的方式定义路由和转换数据流,使得构建企业级应用变得更加简单。Timer 组件是 Apache Camel 中的一个重要部分,它提供了定时触发事件的功能,类似于 ...
Apache Camel 是一个强大的开源消息中间件框架,旨在简化企业级应用中的消息处理逻辑。它提供了一种简单而灵活的方式来定义复杂的路由和数据转换规则。Camel 支持多种传输协议和消息中间件,使得开发者能够轻松地在...
Apache Camel 是一个强大的开源企业级集成框架,它简化了在Java应用程序之间建立复杂的消息传递流程。这个"Apache Camel 开发指南"压缩包包含了丰富的资源,帮助开发者深入理解Camel的各个方面,包括路由表达式、...
Apache CXF和camel-cxf是两个流行的开源框架,它们可以帮助开发者轻松地创建、消费和集成Web服务。本篇文章将详细介绍如何使用CXF和camel-cxf调用Web服务,以及这两个工具的核心功能和使用场景。 Apache CXF是一个...
Apache Camel 是一个流行的开源框架,专为构建企业级集成解决方案而设计。它提供了一种声明式的方式,通过一系列称为“组件”(Components)的模块来连接不同的系统、服务和协议。这些组件使得开发人员能够轻松地...