编写RabbitMQ接口的时候遇见不能连接的问题,测试程序始终可以连接,但将测试程序转移到另一个类中则不行

[复制链接]
查看11 | 回复1 | 2011-5-5 02:41:43 | 显示全部楼层 |阅读模式
在测试程序中始终可以正常连接,也就是每次运行测试程序都可以运行。
但是在一个新的类中完全按照测试程序的步骤重新建立一个连接,向RabbitMQ服务器发送消息和接受消息出现报错。
控制台爆出错误如下:
atcom.zfsy.rabbitmq.MAINTEST_cons.main(MAINTEST_cons.java:309)
Causedby:com.rabbitmq.client.ShutdownSignalException:connectionerror;reason:java.lang.NoClassDefFoundError:org/apache/commons/io/input/ProxyInputStream
atcom.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:67)
atcom.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:33)
远程的ubuntu系统日志报错:
=INFOREPORT====29-Mar-2010::10:20:55===
startingTCPconnection0.17189.220from192.168.1.99:37824

=ERRORREPORT====29-Mar-2010::10:20:55===
erroronTCPconnection0.17189.220from192.168.1.99:37824
connection_closed_abruptly
=INFOREPORT====29-Mar-2010::10:20:55===
closingTCPconnection0.17189.220from192.168.1.99:37824
==============
出错的程序代码如下:
factory.setHost(HOST_IP);
factory.setPort(ConnectionFactory.DEFAULT_AMQP_PORT);
factory.setVirtualHost(QUEUE_NAME);
factory.setUsername(QUEUE_USER);
factory.setPassword(QUEUE_PASSWD);
factory.setConnectionTimeout(10000);
factory.setRequestedChannelMax(500);

try{
conn=factory.newConnection();//断点跟踪到这里就出错
channel=conn.createChannel();
channel.queueDeclare(QUEUE_NAME,false,false,false,null);
}catch(IOExceptione){
e.printStackTrace();
log.info(\"RabbitMQConmusorinitEERO!\"e.getMessage());
this.closeAllConnnect();
}

===============================
请不要从网上拷贝内容来混分,寻求真正能解决问题的大牛,或者有遇见这种问题经验的通知共同讨论。
回复

使用道具 举报

千问 | 2011-5-5 02:41:43 | 显示全部楼层
1.首先查看端口是否开放,
2.查看连接工厂的各种参数设置是否正确,保证队列名和虚拟主机的名字不要弄混了;
3.如果用到了其他组件,例如log4j等,确保依赖的jar包都导入了,尤其是log4J在使用的时候,除了导入相关的依赖包之外,还要导入一个commons-io的jar包,否则会报出io错误。
4.检查rabbitmQ服务是否正常启动,正常启动之后,检查其状态,用户权限等。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行