rabbitmq-server启动了。可以登录到服务器里面。但是用java写一段代码往服务器发送消息的时候,出现错误。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rabbitmq-server启动了。可以登录到服务器里面。但是用java写一段代码往服务器发送消息的时候,出现错误。相关的知识,希望对你有一定的参考价值。

错误提示:
Exception in thread "main" java.io.IOException
at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:106)
at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:102)
at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:124)
at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:388)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:516)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:533)
at Send.main(Send.java:15)
Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; reason: java.net.SocketException: Connection reset
at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:67)
at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:33)
at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:343)
at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:216)
at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:118)
... 4 more
Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
at java.io.DataInputStream.readUnsignedByte(DataInputStream.java:271)
at com.rabbitmq.client.impl.Frame.readFrom(Frame.java:95)
at com.rabbitmq.client.impl.SocketFrameHandler.readFrame(SocketFrameHandler.java:131)
at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:515)
这让我很郁闷。我卸了重装rabbitmq好几次都是这样,为啥呢?求高手指点!!!

好像你写的java代码里,又重新创建socket连接所致 参考技术A 没查一下你自己代码的问题吗?如果是你自己代码的问题,卸了重装N次也没用啊,你看有报Send.java的15行,这个是你自己写的吧

无法启动rabbitmq-server

【中文标题】无法启动rabbitmq-server【英文标题】:unable to start rabbitmq-server 【发布时间】:2013-01-27 02:49:10 【问题描述】:

我使用自制软件安装了 rabbitmq。我正在尝试启动 rabbitmq 服务器,但我总是收到这个错误,我无法弄清楚为什么!

我已经安装了 erlang,并且没有其他应用程序在同一个端口上运行。

$rabbitmq 服务器 error_logger,2013,2,11,22,37,49,"无法设置短节点名!\n请检查您的配置\n",[] error_logger,2013,2,11,22,37,49,crash_report,[[initial_call,net_kernel,init,['Argument__1'],pid,,registered_name,[ ],error_info,exit,error,badarg,[gen_server,init_it,6,[file,"gen_server.erl",line,320],proc_lib,init_p_do_apply,3,[ file,"proc_lib.erl",line,227]],ancestors,[net_sup,kernel_sup,],messages,[],links,[],dictionary,[ longnames,false],trap_exit,true,status,running,heap_size,610,stack_size,24,reductions,249],[]] error_logger,2013,2,11,22,37,49,supervisor_report,[supervisor,local,net_sup,errorContext,start_error,reason,'EXIT',nodistribution ,offender,[pid,undefined,name,net_kernel,mfargs,net_kernel,start_link,[[rabbitmqprelaunch1593,shortnames]],restart_type,permanent,shutdown,2000,child_type ,工人]] error_logger,2013,2,11,22,37,49,supervisor_report,[supervisor,local,kernel_sup,errorContext,start_error,reason,shutdown,offender,[ pid,undefined,name,net_sup,mfargs,erl_distribution,start_link,[],restart_type,permanent,shutdown,infinity,child_type,supervisor]] error_logger,2013,2,11,22,37,49,std_info,[application,kernel,exited,shutdown,kernel,start,[normal,[]] ,类型,永久] "内核 pid 终止",application_controller,"application_start_failure,kernel,shutdown,kernel,start,[normal,[]]" 崩溃转储被写入:erl_crash.dump 内核 pid 终止 (application_controller) (application_start_failure,kernel,shutdown,kernel,start,[normal,[]])

顺便说一句,erl -sname abc 给出相同的输出

更新

这就是我在/etc/hosts中的内容

127.0.0.1 本地主机 255.255.255.255 广播主机

【问题讨论】:

使用长名称有用吗? 你的意思是而不是localhost?不! erl -name abc@abc 怎么样? 哈!那行得通!谢谢! 你最终得到这个工作了吗?遇到完全相同的问题并花了过去一个小时寻找它。似乎没有其他人有同样的问题。 【参考方案1】:

我在 google 上查找了类似的错误,如果您的 /etc/hosts 文件格式错误,似乎会发生这种错误。尝试修复它,看看是否有帮助。

参考资料:

http://www.ejabberd.im/node/18 Explanation on RabbitMQ Mailing list

编辑:为了完整起见,设置一个长名称(abc@abc 形式)似乎可行。

【讨论】:

我在 /etc/hosts 中只有 127.0.0.1 localhost 255.255.255.255 广播主机【参考方案2】:

在这里找到答案: control rabbitmq 'name' not 'sname'

将您的机器名称设置为简单的名称并使其成为 locahost 的别名

【讨论】:

【参考方案3】:

我昨天也遇到了这个问题,找到了根本原因: 我已将系统的主机名更改为“长”名称 pm3(hc desktop)。

如果您的服务器主机名过长或无效,Linux 仍然可以工作,并且不会向您提示错误消息。因为您只需修改 /etc/hostname 文件并重新启动。但是,rabbitmq 服务器可能无法工作,并给您这个“短名称”错误消息。

我将主机名改回“pm3”,重新启动,一切顺利。

【讨论】:

【参考方案4】:

检查您的计算机名和 /etc/hosts 中的短主机名或别名,匹配此

检查您的计算机名称[wendy@nyc123]$ nyc123 是您的计算机名称

检查您的短主机名

[wendy@nyc123]$ 主机名-s

[wendy@nyc123]$ nyc456

发生此错误的原因可能是您的计算机名称和短主机名不匹配。为此,您可以更改计算机主机名或别名。

更改计算机主机名

[wendy@nyc123]$ 主机名 nyc456

关闭您的终端并再次打开 [温迪@nyc456]$ 计算机名称已更改

在 /etc/hosts 中更改别名

127.0.0.1 nyc123.com nyc123

保存并再次检查

[wendy@nyc123]$ 主机名-s

[wendy@nyc123]$ nyc123

重启你的rabbitmq!

[root@nyc123]$ rabbitmq-server start</p>


    RabbitMQ 3.6.0. Copyright (C) 2007-2015 Pivotal Software, Inc.</p>
##  ##      Licensed under the MPL.  See http://www.rabbitmq.com/</p>
##  ##</p>
##########  Logs: /var/log/rabbitmq/rabbitmq@nyc123.com.log</p>
######  ##        /var/log/rabbitmq/rabbitmq@nyc123.com-sasl.log</p>
##########</p>
          Starting broker... completed with 6 plugins.</p>

【讨论】:

这是正确答案。由于原始海报是在 OS X 上,/etc/hosts 中需要有一个与 hostname -s 的输出相匹配的 127.0.0.1 条目【参考方案5】:

我解决了这个更改计算机名称的问题(在 Windows 8.1 上)。问题是这个名字有一个奇怪的字符(é)西班牙字母。我的计算机名称是 Andrés,我将其更改为 Andres,重新启动计算机,一切正常。我认为兔子无法识别那个奇怪角色的名字(安德烈斯)。

【讨论】:

【参考方案6】:

删除旧式配置文件 /etc/rabbitmq/rabbitmq.config 并使用 rabbitmq.conf 与listeners.tcp.default = 5672 之后再次重启rabbitmq服务器 就我而言,解决了 ec2 实例中的问题

【讨论】:

以上是关于rabbitmq-server启动了。可以登录到服务器里面。但是用java写一段代码往服务器发送消息的时候,出现错误。的主要内容,如果未能解决你的问题,请参考以下文章

第一次更改主机名后,rabbitmq-server 无法启动

Rabbitmq服务器无法启动

Rabbitmq 无法启动

rabbitMQ-server控制台安装报错启动失败,黑窗口一闪即过Applying plugin configuration to rabbit .. failed.

当 rabbitmq-server 崩溃时,rabbitmq 服务器会恢复标记为持久队列的消息吗?

rabbitmq 启动报错