本文记录是在 Karaf 环境下使用 camel-amp 的过程,使用的 Apollo 作为 jms 服务器。
package example;
import java.util.Date;
public class Show {
public Show(){
//
}
public String time(){
return (new Date()).toString();
}
public void print(String msg){
System.out.println("-->pring("+msg+")");
}
}
使用 camel-spring方式:
在 resources目录下建立 META-INF/spring/camel-spring.xml 文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd">
<bean id="jms-factory" class="org.apache.qpid.amqp_1_0.jms.impl.ConnectionFactoryImpl"
factory-method="createFromURL">
<constructor-arg type="java.lang.String"
value="amqp://admin:admin@localhost:61613" />
<property name="topicPrefix" value="topic://" />
<property name="queuePrefix" value="queue://" />
</bean>
<bean id="amqp" class="org.apache.camel.component.amqp.AMQPComponent">
<property name="connectionFactory" ref="jms-factory"/>
</bean>
<bean id="show" class="example.Show"/>
<camelContext id="camel-test-amqp" xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="timer:fire?period=5s"/>
<to uri="bean:show?method=time"/>
<setBody>
<simple>现在时间:${body}</simple>
</setBody>
<to uri="bean:show?method=print(${body})"/>
<to uri="amqp:topic:time"/>
</route>
</camelContext>
<camelContext xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="amqp:topic:systm"/>
<setBody>
<simple> 从[topic:systm]收到,body=${body}</simple>
</setBody>
<to uri="bean:show?method=print(${body})"/>
<to uri="log:topicTest"/>
</route>
<route>
<from uri="amqp:topic:time"/>
<setBody>
<simple> 从[topic:time]收到msg=${body}</simple>
</setBody>
<to uri="bean:show?method=print(${body})"/>
<to uri="log:topicTest"/>
</route>
<route>
<from uri="amqp:queue:time"/>
<setBody>
<simple> *****收到Queue ,${body}</simple>
</setBody>
<to uri="bean:show?method=print(${body})"/>
<to uri="log:topicTest"/>
</route>
</camelContext>
</beans>
或者用 osgi/blueprint 方式,在 resources 目录下建立:
OSGI-INF/bluepring/camel-route.xml 文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
<bean id="show" class="example.Show"/>
<bean id="jms-factory" class="org.apache.qpid.amqp_1_0.jms.impl.ConnectionFactoryImpl"
factory-method="createFromURL">
<argument value="amqp://admin:admin@localhost:61613"/>
<property name="topicPrefix" value="topic://" />
<property name="queuePrefix" value="queue://" />
</bean>
<bean id="amqp" class="org.apache.camel.component.amqp.AMQPComponent">
<property name="connectionFactory" ref="jms-factory"/>
</bean>
<camelContext xmlns="http://camel.apache.org/schema/blueprint">
<route>
<from uri="timer:fire?period=1s"/>
<to uri="bean:show?method=time"/>
<setBody>
<simple>现在时间:${body}</simple>
</setBody>
<to uri="bean:show?method=print(${body})"/>
<to uri="amqp:topic:time"/>
<to uri="log:topicTest"/>
</route>
</camelContext>
<camelContext xmlns="http://camel.apache.org/schema/blueprint">
<route>
<from uri="amqp:topic:time"/>
<setBody>
<simple> *****收到 ,${body}</simple>
</setBody>
<to uri="bean:show?method=print(${body})"/>
<to uri="log:topicTest"/>
</route>
</camelContext>
</blueprint>
打包成一个 jar 文件, 如: amqp-test-1.0.jar 。
从 maven 库中下载一下三个 jar , 文件, 分别为:
qpid-amqp-1-0-common-0.32.jar
qpid-amqp-1-0-client-jms-0.32.jar
qpid-amqp-1-0-client-0.32.jar
geronimo-jms_1.1_spec-1.1.1.jar
将上述 5 个 jar 复制到 deploy 目录下,完成在 karaf 环境的部署,就完成了简单的 amqp - jms 的接收和发送,记得请安装 apollo , 我使用的是: apache-apollo-1.7.1
相关推荐
标题中的“distribution-karaf-0.3.0-Lithium.zip”是一个软件分发包,基于Apache Karaf,版本号为0.3.0,代号为Lithium。Apache Karaf是一款流行的开源OSGi容器,常用于构建、部署和管理Java应用程序,尤其在企业级...
- 在Unix下构建Karaf,首先需要使用解压工具解压源码包,然后在源码发布包解压路径中使用Maven命令进行构建。 2. Karaf的基本使用 - 安装完成Karaf后,可以开始使用其目录结构、启动和停止、控制台(包括远程...
- 数据格式附录:解释如何在Camel中使用不同的数据格式。 - 模式附录:深入讨论Camel实现的各种集成模式。 - 组件附录:详细介绍各种Camel组件的功能和使用方法。 - 索引:方便用户查找文档中的关键词和短语。 如果...
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用