Статьи

Односторонний обмен сообщениями с WSO2 ESB

Как я уже писал ранее, в настоящее время я работаю с WSO2 ESB . Чтобы получить хорошее представление об этом ESB, я прошел через образцы (еще не закончил их все). Пример 12 посвящен одностороннему обмену сообщениями с ESB и позволяет использовать монитор TCP, чтобы сделать его видимым. Ранее я описывал, как настроить аналогичный инструмент под названием «TcpTunnelGUI», но на самом деле я предпочитаю TCP Monitor. Для использования инструмента см. Руководство здесь или здесь . Кстати, инструмент доступен с установкой WSO2 ESB, поэтому вам не нужно загружать его и устанавливать. Просто перейдите в каталог ‘$ CARBON_HOME / bin’ и ./tcpmon.sh команду: ./tcpmon.sh

Чтобы увидеть пример 12 в действии с Tcp Monitor, сделайте следующее:

    • Запустите WSO2 ESB

В этом примере используется настройка ESB, аналогичная настройке для примера 1, поэтому запустите ESB, перейдя в каталог «$ CARBON_HOME / bin» в терминале и введите следующую команду:
./wso2esb-samples.sh -sn 1

    • Запустите сервер Apache Axis

Следующим шагом является запуск сервера Axis, на котором развернут SimpleStockQuote. Для этого откройте новый терминал и перейдите в каталог ‘$ CARBON_HOME / samples / axis2Server’. Введите команду ./axis2server.sh .

    • Запустите TcpMonitor

Если вы еще этого не сделали, запустите Tcp Monitor. Сделайте это, открыв новый терминал, перейдите к «$ CARBON_HOME / bin» и введите команду ./tcpmon.sh
Это должно запустить инструмент Tcp Monitor:
Снимок экрана 2013-03-14 в 21.09.12

    • Настройте TcpMonitor

Мы собираемся прослушать порт 8281 и перенаправить входящий трафик на 8280 (именно там наш ESB выполняет свою прокси-службу).
Вот как это настроить в Tcp Monitor:
Снимок экрана 2013-03-14 в 21.25.42
После нажатия кнопки «Добавить» вы увидите, что TcpMonitor ожидает подключения:
Снимок экрана 2013-03-14 в 21.26.06
Итак, давайте отправим сообщение через него.

    • Запустите клиент Axis

Я внес небольшое изменение в утверждение, как показано на странице примера. Откройте новый терминал и выполните следующую команду из каталога ‘$ CARBON_HOME / samples / axis2Client’: ant stockquote -Daddurl=http://localhost:9000/services/SimpleStockQuoteService -Dprxurl=http://localhost:8281/ -Dmode=placeorder

    • Проверьте результаты

В Мониторе TCP мы видим, что к Монитору TCP добавлена ​​строка, а в нижней части мы видим входящий и исходящий запрос:
Снимок экрана 2013-03-14 в 21.55.41

Вот запрос, отправленный клиентом Axis:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'>
   <soapenv:Header xmlns:wsa='http://www.w3.org/2005/08/addressing'>
      <wsa:ReplyTo>
         <wsa:Address>http://www.w3.org/2005/08/addressing/none</wsa:Address>
      </wsa:ReplyTo>
      <wsa:MessageID>urn:uuid:44ba7c6b-1836-4a62-8e40-814813a64022</wsa:MessageID>
      <wsa:Action>urn:placeOrder</wsa:Action>
   </soapenv:Header>
   <soapenv:Body>
      <m0:placeOrder xmlns:m0='http://services.samples'>
         <m0:order>
            <m0:price>154.76332953114107</m0:price>
            <m0:quantity>8769</m0:quantity>
            <m0:symbol>IBM</m0:symbol>
         </m0:order>
      </m0:placeOrder>
   </soapenv:Body>
</soapenv:Envelope>

Важная вещь, на которую следует обратить внимание в запросе, это следующий элемент в заголовке:

1
2
3
<wsa:ReplyTo>
        <wsa:Address>http://www.w3.org/2005/08/addressing/none</wsa:Address>
     </wsa:ReplyTo>

С помощью этого элемента в заголовке мы сообщаем сервису we, что не ожидаем ответа. Итак, что мы получаем в ответ, это просто код ответа 202, который мы видим в Мониторе TCP:

1
2
3
4
5
6
7
HTTP/1.1 202 Accepted
Content-Type: text/xml; charset=UTF-8
Server: Synapse-HttpComponents-NIO
Date: Thu, 14 Mar 2013 20:30:19 GMT
Transfer-Encoding: chunked
 
0

Это завершает этот пример, осталось только несколько!

Ссылка: Один из способов обмена сообщениями с WSO2 ESB от нашего партнера JCG Паскаля Альмы в блоге Pragmatic Integrator .