使用Camel-amqp的Camel-RabbitMQ连接

使用Camel-amqp的Camel-RabbitMQ连接,rabbitmq,apache-camel,amqp,Rabbitmq,Apache Camel,Amqp,我正在尝试使用camel amqp(版本2.17)组件连接到camel路由中的rabbitmq 我将其配置如下: @Bean CachingConnectionFactory jmsCachingConnectionFactory(){ JmsConnectionFactory pool = new JmsConnectionFactory(); pool.setRemoteURI("amqp://127.0.0.1:5672"); po

我正在尝试使用camel amqp(版本2.17)组件连接到camel路由中的rabbitmq

我将其配置如下:

@Bean
    CachingConnectionFactory jmsCachingConnectionFactory(){

        JmsConnectionFactory pool = new JmsConnectionFactory();
        pool.setRemoteURI("amqp://127.0.0.1:5672");
        pool.setUsername("guest");
        pool.setPassword("guest");

        CachingConnectionFactory cachingConnectionFactory = new CachingConnectionFactory();
        cachingConnectionFactory.setTargetConnectionFactory(pool);
        return cachingConnectionFactory;
    }

    @Bean
    JmsConfiguration jmsConfig(){

        JmsConfiguration configuration = new JmsConfiguration();
        configuration.setConnectionFactory(jmsCachingConnectionFactory());
       // configuration.setCacheLevelName("CACHE_CONSUMER");
        return configuration;
    }

    @Bean
    AMQPComponent amqp(){
        AMQPComponent component = new AMQPComponent();
        component.setConfiguration(jmsConfig());
        return  component;
    }
我得到的错误是

javax.jms.JMSException:已存在的连接被 远程主机 在 org.apache.qpid.jms.exceptions.jmsceptionsupport.create(jmsceceptionsupport.java:66) ~[qpid-jms-client-0.8.0.jar:0.8.0]

在我的rabbitmq日志中,我可以看到下面我无法理解的消息

*

**终止原因==
**{function_子句,
[{rabbit_amqp1_0_link_util'-结果/1-lc$^0/1-0-',
[{名单,
[{symbol,},
{symbol,},
{symbol,},
{symbol,}]}],
[{file,“src/rabbit_amqp1_0_link_util.erl”},{line,49}]},
{rabbit_amqp1_0_link_util,结果,1,
[{file,“src/rabbit_amqp1_0_link_util.erl”},{line,49}]},
{rabbit_amqp1_0_传出链接,附件,3,
[{file,“src/rabbit_amqp1_0_outgoing_link.erl”},{line,41}]},
{rabbit_amqp1_0_session_进程,带_一次性_通道,2,
[{file,“src/rabbit_amqp1_0_session_process.erl”},{line,377}]},
{rabbit_amqp1_0_session_进程,句柄控制,2,
[{file,“src/rabbit_amqp1_0_session_process.erl”},{line,197}]},
{rabbit_amqp1_0_session_进程,句柄_cast,2,
[{file,“src/rabbit_amqp1_0_session_process.erl”},{line,134}]},
{gen_server2,handle_msg,2,[{file,“src/gen_server2.erl”},{line,1049}]},
{proc_lib,init_p_do_apply,3,[{file,“proc_lib.erl”},{line,240}]}
=错误报告===2016年7月8日::17:09:27===
关闭AMQP连接(127.0.0.1:55479->127.0.0.1:5672):
{握手错误,正在运行,,
{{symbol,},
“会话错误:~p~n~p~n”,
[功能条款,
[{rabbit_amqp1_0_link_util'-结果/1-lc$^0/1-0-',
[{名单,
[{symbol,},
{symbol,},
{symbol,},
{symbol,}]}],
[{file,“src/rabbit_amqp1_0_link_util.erl”},{line,49}]},
{rabbit_amqp1_0_link_util,结果,1,
[{file,“src/rabbit_amqp1_0_link_util.erl”},{line,49}]},
{rabbit_amqp1_0_传出链接,附件,3,
[{file,“src/rabbit_amqp1_0_outgoing_link.erl”},{line,41}]},
{rabbit_amqp1_0_session_进程,带_一次性_通道,2,
[{file,“src/rabbit_amqp1_0_session_process.erl”},{line,377}]},
{rabbit_amqp1_0_session_进程,句柄控制,2,
[{file,“src/rabbit_amqp1_0_session_process.erl”},{line,197}]},
{rabbit_amqp1_0_session_进程,句柄_cast,2,
[{file,“src/rabbit_amqp1_0_session_process.erl”},{line,134}]},
{gen_server2,handle_msg,2,[{file,“src/gen_server2.erl”},{line,1049}]},
{proc_lib,init_p_do_apply,3,[{file,“proc_lib.erl”},{line,240}]}]}
*

我已经在rabbitmq中启用了amqp_1_0插件。
有人能帮我解决这个问题吗。

这似乎是rabbitmq amqp 1.0插件中的一个bug。rabbitmq记录了一个问题


有一个camel rabbitmq组件。为什么不使用这个呢?Camel rabbitmq工作得很好,但唯一的问题是缺少事务支持。我看不到在组件中设置tx管理器的方法。这是我开始关注amqp的唯一原因,因为它使用了具有tx支持的jms组件。RabbitMQ不鼓励使用amqp事务,因为它们非常慢——用开发人员自己的话说,它们会将吞吐量降低250倍!我知道这对解决这个问题没有帮助,但我的建议是尝试使用RabbitMQ和autoAck选项。自版本2.17.0起,Camel支持确认,有关详细信息,请参阅。
** Reason for termination == 
** {function_clause,
       [{rabbit_amqp1_0_link_util,'-outcomes/1-lc$^0/1-0-',
            [{list,
                 [{symbol,<<"amqp:accepted:list">>},
                  {symbol,<<"amqp:rejected:list">>},
                  {symbol,<<"amqp:released:list">>},
                  {symbol,<<"amqp:modified:list">>}]}],
            [{file,"src/rabbit_amqp1_0_link_util.erl"},{line,49}]},
        {rabbit_amqp1_0_link_util,outcomes,1,
            [{file,"src/rabbit_amqp1_0_link_util.erl"},{line,49}]},
        {rabbit_amqp1_0_outgoing_link,attach,3,
            [{file,"src/rabbit_amqp1_0_outgoing_link.erl"},{line,41}]},
        {rabbit_amqp1_0_session_process,with_disposable_channel,2,
            [{file,"src/rabbit_amqp1_0_session_process.erl"},{line,377}]},
        {rabbit_amqp1_0_session_process,handle_control,2,
            [{file,"src/rabbit_amqp1_0_session_process.erl"},{line,197}]},
        {rabbit_amqp1_0_session_process,handle_cast,2,
            [{file,"src/rabbit_amqp1_0_session_process.erl"},{line,134}]},
        {gen_server2,handle_msg,2,[{file,"src/gen_server2.erl"},{line,1049}]},
        {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,240}]}]}
=ERROR REPORT==== 8-Jul-2016::17:09:27 ===
closing AMQP connection <0.29082.0> (127.0.0.1:55479 -> 127.0.0.1:5672):
{handshake_error,running,<0.29104.0>,
    {{symbol,<<"amqp:internal-error">>},
     "Session error: ~p~n~p~n",
     [function_clause,
      [{rabbit_amqp1_0_link_util,'-outcomes/1-lc$^0/1-0-',
           [{list,
                [{symbol,<<"amqp:accepted:list">>},
                 {symbol,<<"amqp:rejected:list">>},
                 {symbol,<<"amqp:released:list">>},
                 {symbol,<<"amqp:modified:list">>}]}],
           [{file,"src/rabbit_amqp1_0_link_util.erl"},{line,49}]},
       {rabbit_amqp1_0_link_util,outcomes,1,
           [{file,"src/rabbit_amqp1_0_link_util.erl"},{line,49}]},
       {rabbit_amqp1_0_outgoing_link,attach,3,
           [{file,"src/rabbit_amqp1_0_outgoing_link.erl"},{line,41}]},
       {rabbit_amqp1_0_session_process,with_disposable_channel,2,
           [{file,"src/rabbit_amqp1_0_session_process.erl"},{line,377}]},
       {rabbit_amqp1_0_session_process,handle_control,2,
           [{file,"src/rabbit_amqp1_0_session_process.erl"},{line,197}]},
       {rabbit_amqp1_0_session_process,handle_cast,2,
           [{file,"src/rabbit_amqp1_0_session_process.erl"},{line,134}]},
       {gen_server2,handle_msg,2,[{file,"src/gen_server2.erl"},{line,1049}]},
       {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,240}]}]]}}