我正在处理camel-rabbitmq
组件。如果我不指定connectionFactory bean,我会收到错误
java.net.BindException:Cannot assign requested address: connect
at sun.nio.ch.Net.connect0(Native Method) ~[?:?]
at sun.nio.ch.Net.connect(Net.java:579) ~[?:?]
at sun.nio.ch.Net.connect(Net.java:568) ~[?:?]
at sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:588) ~[?:?]
但是对于camel-activemq
,即使我没有指定connectionFactory
bean,它也能工作,因为它自己创建了默认的connectionFactory
对象?但是为什么在camel-rabbitmq
组件的情况下没有发生。我想知道背后的原因。提前谢谢你。
1条答案
按热度按时间xdnvmnnf1#
因为
rabbitmq
需要连接到远程RabbitMQ服务器,并且需要从该连接bean获得信息。ActiveMQ是一个基于Java的代理,轻量级,可以在嵌入式模式下用于测试目的,因此,如果您在使用JMS时没有设置连接工厂,Camel可以自动创建嵌入式代理。这对于RabbitMQ是不可能的(它不是基于Java的)