我正在尝试从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之前我需要做什么设置吗?
我在从Perl向ApacheMQ发送消息时遇到了同样的问题。(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。