Как читать сообщения из хранилища сообщений в памяти через message-processo wso2 esb - PullRequest
0 голосов
/ 28 мая 2018

Я сохранил сообщения в хранилище сообщений в памяти (wso2 esb).Как читать сообщения из хранилища сообщений в памяти.

1 Ответ

0 голосов
/ 29 мая 2018

Вам необходимо использовать MessageProcessor для решения вашей задачи.

https://docs.wso2.com/display/ESB490/Adding+a+Message+Processor

Таким образом, вы можете отправить его в "sequence" с помощью "Sample Processor" или в конечную точку с помощью "Scheduled Processor"

Я пишу ниже конфигурации для wso2esb / wso2ei.Затем вы можете позвонить по URL http://127.0.0.1:8280/test/store в браузере.Это будет работать следующим образом:


API-тест -> хранить сообщения в MemoryStore

Процессор TestProcessor -> отправлять сообщение в последовательность TestSequence каждые 200 мс

TestSequence -> transformсообщение и ответ обратной связи на outSequence api


<messageStore name="TestStore"/>
<api context="/test" name="test">
    <resource methods="GET" uri-template="/store">
        <inSequence>
            <payloadFactory media-type="xml">
                <format>
                    <a xmlns="">1</a>
                </format>
                <args/>
            </payloadFactory>
            <store messageStore="TestStore"/>
        </inSequence>
        <outSequence>
            <send/>
        </outSequence>
    </resource>
</api>
<messageProcessor  class="org.apache.synapse.message.processor.impl.sampler.SamplingProcessor"
    messageStore="TestStore" name="TestProcessor">
    <parameter name="sequence">TestSequence</parameter>
    <parameter name="interval">200</parameter>
    <parameter name="is.active">true</parameter>
    <parameter name="concurrency">1</parameter>
</messageProcessor>
<sequence name="TestSequence">
    <payloadFactory media-type="xml">
        <format>
            <b xmlns="">$1</b>
        </format>
        <args>
            <arg evaluator="xml"
                expression="//*[local-name()='a']/text()" xmlns:ns="http://org.apache.synapse/xsd"/>
        </args>
    </payloadFactory>
    <property name="messageType" scope="axis2" type="STRING" value="application/xml"/>
    <loopback/>
</sequence>
...