为什么我的连接不通过SSL工作?

时间:2018-03-26 18:58:57

标签: ssl rabbitmq apache-camel

我正在尝试使用带有rabbitmq的apache camel(camel-spring-boot - 2.20.2)并创建路径。

当我使用不安全的RabbitMQ(无SSL)时,它确实工作正常,但是当我尝试使用SSL连接到RabbitMQ时,它根本没有连接到队列。 我正在使用Apache Camel页面上给出的“connectionFactory”选项。此connectionFactory对象具有所有正确的参数集(useSslProtocol,用户名,密码等)。

请注意,connectionFactory已正确填充,因为我可以使用它以另一种方式连接(在SimpleMessageListenerContainer上的setConnectionFactory中设置它)。但是对于Apache Camel,我遇到了问题。

java.io.IOException: null
  at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:116) ~[amqp-client-4.1.0.jar!/:4.1.0]
  at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:112) ~[amqp-client-4.1.0.jar!/:4.1.0]
  at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:360)
     

〜[!AMQP的客户端 - 4.1.0.jar /:4.1.0]         在com.rabbitmq.client.impl.recovery.RecoveryAwareAMQConnectionFactory.newConnection(RecoveryAwareAMQConnectionFactory.java:62)   〜[!AMQP的客户4.1.0.jar /:4.1.0]       引起:com.rabbitmq.client.ShutdownSignalException:连接错误         at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66)   〜[!AMQP的客户4.1.0.jar /:4.1.0]       *       *       引起:java.io.EOFException         at java.io.DataInputStream.readUnsignedByte(DataInputStream.java:290)   〜[:?1.8.0_161]         在com.rabbitmq.client.impl.Frame.readFrom(Frame.java:91)〜[amqp-client-4.1.0.jar!/:4.1.0]

在浏览更多内容时,我遇到了这个问题: Apache Camel SSL RabbitMQ,但这似乎有点旧,所以可能不再相关了。

请指教。这对我们来说已成为一种阻碍。

我做了一些更改......我意识到我没有正确使用URL中的connectionFactory - 按照这个链接 - How to set two RabbitMQ connections for the same Camel RouteBuilder configure method,可以继续......但是现在,我得到了这个(看起来我取得了一些进展,但仍然面对下面的事情)。

  

java.net.ConnectException:连接被拒绝(连接被拒绝)at   java.net.PlainSocketImpl.socketConnect(Native Method)〜[?:1.8.0_161]     在   java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)   〜[?:1.8.0_161] at   java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)   〜[?:1.8.0_161] at   java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)   〜[?:1.8.0_161] at   java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)   java.net.Socket.connect中的〜[?:1.8.0_161](Socket.java:589)   〜[?:1.8.0_161] at   sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:673)   〜[?:1.8.0_161] at   com.rabbitmq.client.impl.SocketFrameHandlerFactory.create(SocketFrameHandlerFactory.java:50)   〜[amqp-client-4.1.0.jar!/:4.1.0] at   com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:918)   〜[amqp-client-4.1.0.jar!/:4.1.0] at   com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:870)   〜[amqp-client-4.1.0.jar!/:4.1.0] at   com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:828)   〜[amqp-client-4.1.0.jar!/:4.1.0] at   com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:996)   〜[amqp-client-4.1.0.jar!/:4.1.0] at   org.apache.camel.component.rabbitmq.RabbitMQEndpoint.connect(RabbitMQEndpoint.java:248)   〜[camel-rabbitmq-2.20.2.jar!/:2.20.2] at   org.apache.camel.component.rabbitmq.RabbitMQConsumer.openConnection(RabbitMQConsumer.java:64)   〜[camel-rabbitmq-2.20.2.jar!/:2.20.2] at   org.apache.camel.component.rabbitmq.RabbitMQConsumer.getConnection(RabbitMQConsumer.java:75)   〜[camel-rabbitmq-2.20.2.jar!/:2.20.2] at   org.apache.camel.component.rabbitmq.RabbitConsumer。(RabbitConsumer.java:55)   [camel-rabbitmq-2.20.2.jar!/:2.20.2] at   org.apache.camel.component.rabbitmq.RabbitMQConsumer.createConsumer(RabbitMQConsumer.java:120)   [骆驼的RabbitMQ-2.20.2.jar /:2.20.2]

路线如下所示 - connectionFactory对象已正确填充。它在应用程序和工作中使用(使用常规Spring方式连接到RabbitMQ)

  

final CamelContext camelContext = getContext();最后   org.apache.camel.impl.SimpleRegistry registry = new   org.apache.camel.impl.SimpleRegistry();最后   org.apache.camel.impl.CompositeRegistry compositeRegistry = new   org.apache.camel.impl.CompositeRegistry();   compositeRegistry.addRegistry(camelContext.getRegistry());   compositeRegistry.addRegistry(注册表);   ((org.apache.camel.impl.DefaultCamelContext)   camelContext).setRegistry(compositeRegistry);   registry.put(“connectionFactoryWorker”,connectionFactory);

     

从( “RabbitMQ的:: 5671 /队列=安培; connectionFactory的=#connectionFactoryWorker”)。日志(“接收   消息“);

0 个答案:

没有答案