2015-08-25 6 views
0

Я пытаюсь использовать python-qpid-proton version 0.9.1 для отправки сообщения в очередь Azure Service Bus.использовать qpid-proton для отправки постоянных сообщений в служебную шину Azure - ошибка анализа URL-адресов

Примеры в примерах/python/messenger/принимают адреса формы amqps: //: @ /, и я могу успешно отправлять сообщения в очередь, которую у меня есть на Azure с ней. Проблема заключается в том, что я не могу контролировать многое из того, что происходит, а именно, я не вижу, действительно ли отправка не удалась. В конце концов я хочу сохранить сообщения в случае временного подключения к Интернету.

Примеры примеров кода/python/db_send.py и examples/python/simple_send.py кажутся более полезными с этими аспектами, поскольку они используют MessagingHandler вместо класса Messenger. Но когда я запускаю их, я получаю эту ошибку:

./simple_send.py -a amqps://send:[email protected]/queue2 
Traceback (most recent call last): 
File "./simple_send.py", line 62, in <module> 
    Container(Send(opts.address, opts.messages)).run() 
    File "/usr/local/lib/python2.7/dist-packages/proton/reactor.py", line 120, in run 
    while self.process(): pass 
    File "/usr/local/lib/python2.7/dist-packages/proton/reactor.py", line 143, in proce 
    self._check_errors() 
    File "/usr/local/lib/python2.7/dist-packages/proton/__init__.py", line 3737, in dis 
    ev.dispatch(self.handler) 
    File "/usr/local/lib/python2.7/dist-packages/proton/__init__.py", line 3662, in dis 
    result = dispatch(handler, type.method, self) 
    File "/usr/local/lib/python2.7/dist-packages/proton/__init__.py", line 3551, in dis 
    return m(*args) 
    File "/usr/local/lib/python2.7/dist-packages/proton/handlers.py", line 416, in on_r 
    self.on_start(event) 
    File "./simple_send.py", line 36, in on_start 
    event.container.create_sender(self.url) 
    File "/usr/local/lib/python2.7/dist-packages/proton/reactor.py", line 671, in creat 
    session = self._get_session(context) 
    File "/usr/local/lib/python2.7/dist-packages/proton/reactor.py", line 634, in _get_ 
    return self._get_session(self.connect(url=context)) 
    File "/usr/local/lib/python2.7/dist-packages/proton/reactor.py", line 611, in conne 
    if url: connector.address = Urls([url]) 
    File "/usr/local/lib/python2.7/dist-packages/proton/reactor.py", line 555, in __ini 
    self.values = [Url(v) for v in values] 
    File "/usr/local/lib/python2.7/dist-packages/proton/__init__.py", line 3851, in __i 
    if defaults: self.defaults() 
    File "/usr/local/lib/python2.7/dist-packages/proton/__init__.py", line 3894, in def 
    self.port = self.port or self.Port(self.scheme) 
    File "/usr/local/lib/python2.7/dist-packages/proton/__init__.py", line 3868, in _ge 
    return portstr and Url.Port(portstr) 
    File "/usr/local/lib/python2.7/dist-packages/proton/__init__.py", line 3812, in __n 
    port = super(Url.Port, cls).__new__(cls, cls._port_int(value)) 
    File "/usr/local/lib/python2.7/dist-packages/proton/__init__.py", line 3833, in _po 
    raise ValueError("Not a valid port number or service name: '%s'" % value) 
ValueError: Not a valid port number or service name: 'mxitheresto' 

Мне кажется, что это не разобрать адрес правильно. Я вставил тот же адрес, что и раньше. И я вставил его в интерпретатор Python, как это:

import proto 
u =  proton.Url("amqps://send:[email protected]/queue2") 
# no error, and I can access all the parameters: 
u.port 
5671 
u.username 
send 
# ... 

Он отлично работает, если я использую локальное соединение с не именем пользователя и паролем. Получается мимо этого момента, если я не использую ни одно имя пользователя и пароль, но, очевидно, не работает, поскольку он терпит неудачу при аутентификации.

Есть ли способ использовать класс MessagingHandler и указать имя пользователя и пароль для отправки сообщений на удаленный (например, на Azure)?

+0

Тот же вопрос, что и ссылка http://stackoverflow.com/questions/32189596/python-qpid-proton-examples-send-message-to-azure-not-working/32197104?noredirect=1#comment52285281_32197104 –

+0

Please перейдите на http://stackoverflow.com/questions/32189596/python-qpid-proton-examples-send-message-to-azure-not-working/32197104?noredirect1_comment52285281_32197104, тот же вопрос, что и ваш. С наилучшими пожеланиями. –

ответ

-1

Примеры примеров/python/db_send.py и примеры/python/simple_send.py требуют, чтобы Azure Service Bus была в порядке, но они не могут установить соединение отправителя с AMQPS-схемой.

Обратитесь к оффициальному документу MSDN https://msdn.microsoft.com/en-us/library/azure/jj841070.aspx, MS рекомендует использовать Messenger Class для отправки сообщений.

Детали для вашей проблемы, пожалуйста, обратитесь к моему сообщению по адресу python-qpid-proton examples, send message to azure not working.

 Смежные вопросы

  • Нет связанных вопросов^_^