Как прочитать данные из файла и сохранить их в хранилище сообщений в WSO2

Может ли кто-нибудь предложить, как я могу читать данные из одного файла и добавлять их в хранилище сообщений.

Я пытаюсь разработать функцию повторной отправки сообщения в ESB.

Идея:

Сообщение отправляется от одного прокси-сервиса к месту назначения

Сохраняйте сообщения в разных файлах (одно сообщение в файле).

Напишите другую прокси-службу, которая будет считывать содержимое всех файлов из папки и помещать их в хранилище сообщений.

Теперь над хранилищем будет процессор, который будет отправлять сообщения из хранилища в точку назначения.

С уважением Махеш


person user3592182    schedule 14.05.2014    source источник


Ответы (2)


Хранилище сообщений "MyStore" в ActiveMQ:

<messageStore xmlns="http://ws.apache.org/ns/synapse" class="org.wso2.carbon.message.store.persistence.jms.JMSMessageStore" name="MyStore">
    <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
    <parameter name="store.jms.cache.connection">false</parameter>
    <parameter name="java.naming.provider.url">failover:tcp://localhost:61616</parameter>
    <parameter name="store.jms.JMSSpecVersion">1.1</parameter>
</messageStore>

Процессор сообщений: чтение из хранилища и отправка сообщения в конечную точку «MyEPR».

<messageProcessor xmlns="http://ws.apache.org/ns/synapse" class="org.apache.synapse.message.processor.impl.forwarder.ScheduledMessageForwardingProcessor" name="MyStoreForwarder" targetEndpoint="MyEPR" messageStore="MyStore">
    <parameter name="message.processor.reply.sequence">MyReplySequence</parameter>
    <parameter name="max.delivery.attempts">-1</parameter>
    <parameter name="client.retry.interval">5000</parameter>
    <parameter name="interval">10</parameter>
    <parameter name="message.processor.fault.sequence">MyFaultSequence</parameter>
    <parameter name="is.active">true</parameter>
</messageProcessor>

Прокси-сервис: чтение xml-файлов в файле:///home/test и сохранение их в «MyStore».

<proxy xmlns="http://ws.apache.org/ns/synapse" name="MyProxy" transports="vfs" statistics="disable" trace="disable" startOnLoad="true">
   <target>
    <inSequence>
      <store messageStore="MyStore"/>
    </inSequence>
   </target>
   <parameter name="transport.PollInterval">15</parameter>
   <parameter name="transport.vfs.FileURI">file:///home/test</parameter>
   <parameter name="transport.vfs.FileNamePattern">.*.xml</parameter>
   <parameter name="transport.vfs.ContentType">application/xml; charset=ISO-8859-1</parameter>
</proxy>
person Jean-Michel    schedule 15.05.2014
comment
Спасибо за ваши ответы, я могу копировать свои сообщения в магазин. - person user3592182; 15.05.2014
comment
Сейчас я столкнулся с другой проблемой: мой процессор отключается после обработки 2 или 3 сообщений. Может ли кто-нибудь сообщить мне причину этого. Это из-за того, что я копирую сообщения из файлов, а не напрямую из запроса, потому что, если я копирую сообщения непосредственно из запроса, я не сталкиваюсь с такими проблемами????? Пожалуйста, предложите исправление - person user3592182; 15.05.2014
comment
Я понял проблему. Я не помечал свое сообщение ТОЛЬКО ВНЕШНИМ, поэтому процессор ожидал, что последовательность отправит ответ обратно, но этой последовательности там не было, поэтому она деактивировалась. - person user3592182; 16.05.2014

Эта проблема возникает из-за того, что отправитель транспорта vfs не включен в конфигурации axis2.xml.

person Vanji    schedule 19.04.2019