2012-12-05 70 views
0

我正在尝试perl生产者与ActiveMq交谈。请找到我试过的代码。这是给我的错误“*网:: STOMP ::客户:: IO :: receive_data():不能sysread执行():EOF” **perl生产者连接到activemq服务器的错误

后调试的错误是在$stomp->connect(); 请让我知道为什么这个错误在这一点......我不能找到有关这个网上有很大帮助..

在此先感谢

我已经尝试远程登录到我想要的网址连接。首先它正在连接,并在最后它是一些错误信息如下:

CacheEnabledSizePrefixDisabled MaxInactivityDurationInitalDelay'TcpNoDelayEnabledMaxInactivityDurationu0TightEncodingEnabledStackTraceEnabledPuTTY 
Connection closed by foreign host. 

这意味着连接正在关闭。

这些都是经纪人日志在那里我怀疑一些错误:

2012-12-07 14:44:12,021 | WARN | Transport Connection to: tcp://127.0.0.1:57404 failed: java.io.EOFException | org.apache.activemq.broker.TransportConnection.Transport | ActiveMQ Transport: tcp:///127.0.0.1:[email protected] 
2012-12-07 14:44:12,021 | WARN | Transport Connection to: tcp://127.0.0.1:57403 failed: java.io.EOFException | org.apache.activemq.broker.TransportConnection.Transport | ActiveMQ Transport: tcp:///127.0.0.1:[email protected] 
2012-12-07 14:44:12,024 | WARN | Transport Connection to: tcp://127.0.0.1:57405 failed: java.io.IOException: Unknown data type: 47 | org.apache.activemq.broker.TransportConnection.Transport | ActiveMQ Transport: tcp:///127.0.0.1:[email protected] 
2012-12-07 14:44:12,024 | WARN | Transport Connection to: tcp://127.0.0.1:57405 failed: org.apache.activemq.transport.InactivityIOException: Cannot send, channel has already failed: tcp://127.0.0.1:57405 | org.apache.activemq.broker.TransportConnection.Transport | Async Exception Handler 
2012-12-07 16:08:55,045 | WARN | Transport Connection to: tcp://127.0.0.1:58008 failed: java.io.IOException: Unknown data type: 69 | org.apache.activemq.broker.TransportConnection.Transport | ActiveMQ Transport: tcp:///127.0.0.1:[email protected] 
2012-12-07 16:08:55,045 | WARN | Transport Connection to: tcp://127.0.0.1:58008 failed: org.apache.activemq.transport.InactivityIOException: Cannot send, channel has already failed: tcp://127.0.0.1:58008 | org.apache.activemq.broker.TransportConnection.Transport | Async Exception Handler 

代码:

#! /usr/bin/perl 

use strict; 
use warnings; 

use Net::STOMP::Client; 
my $stomp = Net::STOMP::Client->new(uri => "tcp://$url:$port"); 
my $peer = $stomp->peer(); 
    printf("connected to broker %s (IP %s), port %d\n", 
     $peer->host(), $peer->addr(), $peer->port()); 
    $stomp->connect(); 
    printf("speaking STOMP %s with server %s\n", 
     $stomp->version(), $stomp->server() || "UNKNOWN"); 
    printf("session %s started\n", $stomp->session()); 
    $stomp->disconnect(); 
    printf("session ended\n"); 
+0

在发布的示例代码中,哪一行会给出错误,很难在没有更多信息的情况下猜测发生了什么问题。经纪人日志也是一个好看的地方。 –

+0

代理配置是什么样的? –

回答

0

它会帮助,如果你告诉我们这行中的出错发生在那里,因为那会指出哪个呼叫失败并出现该错误。

Perl的STOMP库有一些非常错误的版本。确保您使用的是CPAN的最新版本,而不是预装在系统上的旧版本。

相关问题