我正处于例外状态
org.springframework.amqp.AmqpAuthenticationException: com.rabbitmq.client.AuthenticationFailureException: ACCESS_REFUSED -登录被拒绝使用身份验证机制。有关详细信息,请参阅代理日志文件。
配置: windows上的RabbitMQ 3.3.5
在%APPDATA%\RabbitMQ\rabbit.config中的Config文件上,我按照https://www.rabbitmq.com/access-control.html做了以下更改
[{rabbit, [{loopback_users, []}]}].我还试着创建一个用户/pwd-测试/测试似乎无法使它工作。
尝试了this post中的步骤。
其他配置细节如下:
Tomcat宿主Spring应用程序上下文:
<!-- Rabbit MQ configuration Start -->
<!-- Connection Factory -->
<rabbit:connection-factory id="rabbitConnFactory" virtual-host="/" username="guest" password="guest" port="5672"/>
<!-- Spring AMQP Template -->
<rabbit:template id="rabbitTemplate" connection-factory="rabbitConnFactory" routing-key="ecl.down.queue" queue="ecl.down.queue" />
<!-- Spring AMQP Admin -->
<rabbit:admin id="admin" connection-factory="rabbitConnFactory"/>
<rabbit:queue id="ecl.down.queue" name="ecl.down.queue" />
<rabbit:direct-exchange name="ecl.down.exchange">
<rabbit:bindings>
<rabbit:binding key="ecl.down.key" queue="ecl.down.queue"/>
</rabbit:bindings>
</rabbit:direct-exchange>在我的控制课上
@Autowired
RmqMessageSender rmqMessageSender;
//Inside a method
rmqMessageSender.submitToECLDown(orderInSession.getOrderNo());在我的信息发送者中:
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component("messageSender")
public class RmqMessageSender {
@Autowired
AmqpTemplate rabbitTemplate;
public void submitToRMQ(String orderId){
try{
rabbitTemplate.convertAndSend("Hello World");
} catch (Exception e){
LOGGER.error(e.getMessage());
}
}
}以上异常块提供下面的异常
org.springframework.amqp.AmqpAuthenticationException: com.rabbitmq.client.AuthenticationFailureException: ACCESS_REFUSED -登录被拒绝使用身份验证机制。有关详细信息,请参阅代理日志文件。
错误日志
=ERROR REPORT==== 7-Nov-2014::18:04:37 ===
closing AMQP connection <0.489.0> (10.1.XX.2XX:52298 -> 10.1.XX.2XX:5672):
{handshake_error,starting,0,
{amqp_error,access_refused,
"PLAIN login refused: user 'guest' can only connect via localhost",
'connection.start_ok'}}请在pom.xml条目下面找到
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit</artifactId>
<version>1.3.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-amqp</artifactId>
<version>4.0.4.RELEASE</version>
</dependency>如果你有什么想法/建议,请告诉我。
发布于 2015-03-21 00:05:26
我确信Artem解释过的here可能是造成此错误的原因之一:
原因: com.rabbitmq.client.AuthenticationFailureException: ACCESS_REFUSED - Login被拒绝使用身份验证机制。有关详细信息,请参阅
但对我来说,解决方案是使用默认用户名和密码(即来宾/来宾)登录到rabbitMQ管理页(http://localhost:15672/#/users),然后添加一个新用户,对于新用户,我启用了从虚拟主机访问它的权限,然后使用新的用户名和密码代替默认的来宾,从而清除了错误。

发布于 2016-12-22 15:09:50
要完成@cpu-100 answer,
如果您不想启用/使用web接口,您可以使用下面的命令行创建一个新的凭据,并在代码中使用它连接到RabbitMQ。
$ rabbitmqctl add_user YOUR_USERNAME YOUR_PASSWORD
$ rabbitmqctl set_user_tags YOUR_USERNAME administrator
$ rabbitmqctl set_permissions -p / YOUR_USERNAME ".*" ".*" ".*"发布于 2014-11-08 17:46:50
用户‘来宾’只能通过本地主机进行连接
这是自RabbitMQ 3.3.x以来的事实。因此,您应该升级到客户端库的相同版本,或者只需将Spring升级到最新版本(如果使用依赖关系管理系统)。
以前版本的客户端使用127.0.0.1作为ConnectionFactory的host选项的默认值。
https://stackoverflow.com/questions/26811924
复制相似问题