为什么在camel-rabbitmq组件中必须指定RabbitMq connectionFactory,如果我不指定连接工厂bean,我会得到异常?

xxe27gdn  于 2023-03-29  发布在  Apache
关注(0)|答案(1)|浏览(161)

我正在处理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组件的情况下没有发生。我想知道背后的原因。提前谢谢你。

xdnvmnnf

xdnvmnnf1#

因为rabbitmq需要连接到远程RabbitMQ服务器,并且需要从该连接bean获得信息。
ActiveMQ是一个基于Java的代理,轻量级,可以在嵌入式模式下用于测试目的,因此,如果您在使用JMS时没有设置连接工厂,Camel可以自动创建嵌入式代理。这对于RabbitMQ是不可能的(它不是基于Java的)

相关问题