java - RabbitMq connectionFactory 初始化时的 java.io.IOException
问题描述
当我尝试向 rabbitMQ 服务器创建 .newConnection() 时,出现以下错误:
com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:122) 在 com.rabbitmq.client 的 com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:126) 的 java.io.IOException。 impl.AMQConnection.start(AMQConnection.java:373) 在 com.rabbitmq.client.impl.recovery.RecoveryAwareAMQConnectionFactory.newConnection(RecoveryAwareAMQConnectionFactory.java:64) 在 com.rabbitmq.client.impl.recovery.AutorecoveringConnection.init(AutorecoveringConnection. java:134) 在 com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:997) 在 com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:956) 在 com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory .java:914) 在 com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1068)
……
原因:com.rabbitmq.client.ShutdownSignalException:com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:36) 处 com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66) 处的连接错误。 rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:494) 在 com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:315)
在 com.rabbitmq.client.impl.recovery.RecoveryAwareAMQConnectionFactory。 com.rabbitmq.client.impl.recovery.AutorecoveringConnection.init(AutorecoveringConnection.java:134) 处的 newConnection(RecoveryAwareAMQConnectionFactory.java:64)
我的代码片段是:
ConnectionFactory connectionFactory = new ConnectionFactory();
connectionFactory.setUsername("myUser");
connectionFactory.setUsername("myPass");
connectionFactory.setHost("rabbitmq.test.com"); //also tried with the IP
connectionFactory.setPort(customPort);
connectionFactory.setVirtualHost("/myVHost");
Connection connection = connectionFactory.newConnection();
我还尝试了紧凑的设置:
connectionFactory.setUri("amqp://myUser:myPass@rabbitmq.test.com:customPort/myVHost");
现在......奇怪的是,如果我登录到 GUI,我可以访问该虚拟主机的队列......
请问对这种情况有什么想法吗?提前致谢。
解决方案
您似乎使用了setUsername()
设置密码的功能。
推荐阅读
- node.js - 如何处理猫鼬连接重置
- c# - 更改存储为 MongoDB 文档中的字符串的枚举值
- android - 使用 Gradle Kotlin-DSL 时如何使用 flavorDimensions 为每种风味组合设置不同的 applicationId?
- python - 不使用 open(filename, 'wb') 保存泡菜文件
- xamarin.forms - 单击 Xamarin Forms SearchBar 时显示搜索选项
- python - numpy 是否处理 dtype 错误的数组?
- r - 错误:未安装 ID 为“R”的语言。安装的语言是:[]
- javascript - 无法将位于另一个 div 中的 div 中的滑块居中
- python-3.x - Anaconda3 2019.10 (64-bit) 安装卡在设置基础环境
- python-3.x - 如何在 python 中计算 FIX 消息的校验和