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好几次都是这样,为啥呢?求高手指点!!!
无法启动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
中的内容
【问题讨论】:
使用长名称有用吗? 你的意思是而不是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-server控制台安装报错启动失败,黑窗口一闪即过Applying plugin configuration to rabbit .. failed.