无法在 C:/Perl/site/lib/Net/Stomp 上对未定义的值调用方法 "headers"。下午 122 行



我正在尝试从Perl发送EMS消息到EMS服务器中运行的队列。我正在使用STOMP模块连接到EMS队列发送消息。这是我的代码-

JMSQUEUE.pl:

use Net::Stomp;
use Net::Stomp::Frame;
my $stomp = Net::Stomp->new( { hostname => 'localhost', port => '7222' } );
$stomp->connect( { login => 'admin', passcode => '' } );
$stomp->send( { destination => '/queue/pradeepexp', body => 'test message' } );
$stomp->disconnect;

和在我的模块- STOMP。下午:

sub connect {
    my ( $self, $conf ) = @_;
    my $frame =
      Net::Stomp::Frame->new( { command => 'CONNECT', headers => $conf } );
    $self->send_frame($frame);
    $frame = $self->receive_frame;
    # Setting initial values for session id, as given from
    # the stomp server
    $self->session_id( $frame->headers->{session} );
    $self->_connect_headers($conf);
    return $frame;
}

在呼叫connect之前我需要做什么设置吗?

我在从PerlApacheMQ发送消息时遇到了同样的问题。(Perl + Net-Stomp-0.45 + apache-activemq-5.8)

这只是一个小错误。在这个文件harddiskapache-activemq-5.8confactivemq.xml.

中设置正确的transportConnectors非常重要。
<transportConnectors>
   <transportConnector name="stomp" uri="stomp://localhost:61616"/>
</transportConnectors>

之后,它工作良好更多信息:http://activemq.apache.org/stomp.html

可能EMS中也有类似的文件

发生这种情况是因为Stomp库从消息代理接收到无效(或没有)响应。

尝试telnet到消息代理,看看它是否使用Stomp。

相关内容

  • 没有找到相关文章

最新更新