Camel之ActiveMQ

代码示例如下:

package com.ustcinfo.CamelDemo.activeMQ;

import javax.jms.ConnectionFactory;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.camel.CamelContext;
import org.apache.camel.Component;
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;

class ActiveMQDemo {
    private static String user = "admin";
    private static String password = "admin";
    //填写AMQ的IP
    private static String url = "failover://tcp://localhost:61777";

    public static void main(String args[]) throws Exception {
        CamelContext context = new DefaultCamelContext();
        //创建AMQ的连接工厂
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(user, password, url);
        context.addComponent("jms", JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
        System.out.println(url + " " + user + " " + password);
        context.addRoutes(new RouteBuilder() {
            public void configure() {
                // j
                from("jetty:http://localhost:5555/activeMQDemo").process(new Processor() {

                    @Override
                    public void process(Exchange exchange) throws Exception {
                        // TODO Auto-generated method stub
                        String msg = exchange.getIn().getBody(String.class);
                        System.out.println("接收的消息为 : " + msg);
                        exchange.getOut().setBody(msg, String.class);
                    }
                }).to("jms:queue:queueName?disableReplyTo=true&preserveMessageQos=true");
            }
        });

        context.start();
        boolean loop = true;
        while (loop) {
            Thread.sleep(25000);
        }

        context.stop();
    }

}

注意:
AMQ可作为消费者也可作为生产者,他们的uri可通用,其中disableReplyTo=true,表示不必等到生产的消息被消费时才会返回,相当于异步发送消息。


需要导包:

<!--jms amq -->
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-jms</artifactId>
    <version>2.16.2</version>
</dependency>
<!-- activemq包 -->
<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-camel</artifactId>
    <version>5.9.0</version>
</dependency>

总结:
一开始的时候百度了了各种方法,说的都和上面几乎差不多的代码,我也尝试了一天,但是都不能够发送消息和接收消息,一直报找不到spring的jar包的错误,后来导入下面的jar包后问题解决啦!!!

<dependency>
    <groupId>org.springframework</groupId>
    //这个非常重要
    <artifactId>spring-jms</artifactId>
    <version>${spring-framework.version}</version>
</dependency>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值