Apache Camel pollEnrich с помощью селектора на JMSCorrelationID - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь использовать pollEnrich для получения указанного c сообщения от конечной точки на основе значения JMSCorrelationID . Я нашел много старых постов, в которых указывалось, что pollEnrich не поддерживает это, но согласно последнему руководству pollEnrich теперь поддерживает динамические c urls Руководство по верблюдам для pollEnrich .

Однако я не могу заставить его работать в моем коде с помощью селектора, и я не уверен, является ли это проблемой синтаксиса или я делаю что-то еще неправильно. Первоначально у меня было это использование значения Dynami c в селекторе, но я даже не могу заставить его работать со значением c.

Фрагмент кода моего маршрута:

<route id="receive_start">
    <from uri="direct:receive_start"/>
    <pollEnrich>
        <simple>seda:resources?selector=JMSCorrelationID%3D'1234'</simple>
    </pollEnrich>
    <recipientList>
        <simple>direct:respond_end</simple>
    </recipientList>
</route>

Когда я передаю сообщение по этому маршруту, я получаю следующую ошибку:

Failed delivery for (MessageId: ID-1582783414063-0-11 on ExchangeId: ID-1582783414063-0-10). Exhausted after delivery attempt: 1 caught: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: seda://resources?+selector=JMSCorrelationID+%3D+%271234%27 due to: Failed to resolve endpoint: seda://resources?+selector=JMSCorrelationID+%3D+%271234%27 due to: There are 1 parameters that couldn't be set on the endpoint. Check the uri if the parameters are spelt correctly and that they are properties of the endpoint. Unknown parameters=[{selector=JMSCorrelationID = '1234'}]

Без селектора я могу получить из конечной точки ресурсов, но мне нужно иметь возможность получить конкретное c сообщение из этой конечной точки из всех имеющихся там.

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

...