Невозможно вызвать метод "заголовки" для неопределенного значения в C:/Perl/site/lib/Net/Stomp. вечера строка 122
Я пытаюсь отправить сообщение EMS из Perl в очередь на сервере 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.PM:
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;
}
Какие-либо настройки мне нужно сделать перед звонком?
2 ответа
У меня была такая же проблема с отправкой сообщений из Perl в ApacheMQ. (Perl + Net-Stomp-0.45 + apache-activemq-5.8)
Это была просто маленькая ошибка. В этом файле важно установить правильные transportConnectors harddisk \ apache-activemq-5.8 \ conf \ activemq.xml.
<transportConnectors>
<transportConnector name="stomp" uri="stomp://localhost:61616"/>
</transportConnectors>
После этого он работает нормально:D Для получения дополнительной информации: http://activemq.apache.org/stomp.html
Возможно, есть похожие файлы в EMS.
Это происходит потому, что библиотека Stomp получает неверный (или нет) ответ от посредника сообщений.
Попробуйте связаться с брокером сообщений и посмотреть, говорит ли он вообще Stomp.