Статьи

JMS-источник -> ESB-обработка -> JMS-назначение

Недавно я подготовил демо и подумал, что будет полезно, если я поделюсь им в своем блоге. Если вы новичок в WSO2 ESB, рекомендуется ссылаться на следующие предыдущие посты.

Вебинар: Руководство для покупателей по корпоративной сервисной шине (ESB)
http://www.youtube.com/watch?v=yokfudCDcg8

Как написать прокси для фильтрации запросов soap 1.1 с WSO2 ESB  http://achala11.blogspot.com /2011/12/how-to-write-proxy-to-filter-soap-11.html

 Прокси-сервисы с WSO2 ESB / Мониторинг с помощью TCPMon
http://achala11.blogspot.com/2012/05/proxy-services-with -wso2-ESB-monitoring.html

WSO2 ESB Proxy Services с Настраиваемый URL —
http://achala11.blogspot.com/2012/07/wso2-esb-proxy-services-with-custom.html

Маршрут к конечной точке на основе времени дня — Использование ESB
http://achala11.blogspot.com/2012/07/route-to-endpoint-based-on-time-of-day.html

Маршрутизировать сообщения на основе заголовков HTTP с помощью WSO2 ESB
http://achala11.blogspot.com/ 2012/08 / route-messages-based-on-http-headers.html

Хорошо, давайте посмотрим на демо.

Для этого необходимо следующее.

WSO2 ESB —  http://wso2.com/products/enterprise-service-bus/
activemq —
soapui —

Предпосылки
  • Загрузите, установите и запустите сервер JMS.
  • Настройте пример сервера Axis2 для JMS.
  • Запустите сервер Axis2 и разверните  SimpleStockQuoteService.
  • Настройте транспорт Synase JMS.

Создайте следующий прокси (StockQuoteProxy) в WSO2 ESB. Это сохранит сообщение в очереди

<proxy xmlns="http://ws.apache.org/ns/synapse" name="StockQuoteProxy" transports="http" statistics="disable" trace="disable" startOnLoad="true">
   <target>
      <inSequence>
         <property name="OUT_ONLY" value="true"/>
         <log level="custom">
            <property name="1st proxy" value="-------------"/>
         </log>
      </inSequence>
      <outSequence>
         <send/>
      </outSequence>
      <endpoint>
         <address uri="jms:/StockQuoteJmsProxy?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&java.naming.provider.url=tcp://localhost:61616"/>
      </endpoint>
   </target>
   <description></description>
</proxy>

Далее давайте создадим второй прокси. Это отправит сообщение в пункт назначения jms (StockQuoteJmsProxy2).

<proxy xmlns="http://ws.apache.org/ns/synapse" name="StockQuoteJmsProxy" transports="jms" statistics="disable" trace="disable" startOnLoad="true">
   <target>
      <inSequence>
         <property name="OUT_ONLY" value="true"/>
         <log level="full">
            <property name="2nd proxy before" value="-------------"/>
         </log>
         <xslt key="xslt-key-req"/>
         <log level="full">
            <property name="2nd proxy after" value="-------------"/>
         </log>
      </inSequence>
      <outSequence>
         <log level="full">
            <property name="2nd proxy outttttttt" value="-------------"/>
         </log>
         <send/>
      </outSequence>
      <endpoint>
         <address uri="jms:/StockQuoteJmsProxy2?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&java.naming.provider.url=tcp://localhost:61616"/>
      </endpoint>
   </target>
   <description></description>
</proxy>

Используйте soapui и создайте новый проект, используя wsdl  простого  прокси. Прочитайте [1] сообщение для более подробной информации.

Когда вы проверите очередь «StockQuoteJmsProxy2» в activemq, вы сможете увидеть новое сообщение.

[1]  http://docs.wso2.org/wiki/display/ESB450/Sample+251%3A+Switching+from+HTTP(S)+to+JMS