Я построил веб-сервис в верблюде apache, который работает как пакет на karaf, который берет запросы и сохраняет информацию в базе данных.Apache camel blueprint ответ веб-службы на другом маршруте
После этого еще один комплект принимает эту вставленную запись, изменяет данные и сохраняет их обратно в db.
Теперь мне нужен ответ на первоначальный запрос, чтобы содержать измененные данные так, кроме маршрута для веб-сервиса, который выглядит как этот
<route id="cxf">
<from uri="cxf:bean:getHopEndpoint" />
<recipientList>
<simple>direct:${header.operationName}</simple>
</recipientList>
</route>
<route id="getHop">
<from uri="direct:getHop" />
<process ref="getHopToDbProcessor" />
<to
uri="sql:INSERT INTO myTable (field1, field2) VALUES (:#field1, :#field2)"/>
</route>
мне нужно еще один, как этот
<route id="cxfResponse">
<from uri="sql:SELECT * FROM myTable"/>
<!-- to web service response in any way -->
</route>
Есть ли способ сделать это?
Для варианта 1: обязательным является то, что операция других пучков остается в другом комплекте, а не синхронно в одном. Для варианта 2: я не могу ничего сделать на стороне, которая вызывает веб-службу, поэтому я также не могу настроить uri для перезвона. Когда я использую jms, можно ли ждать по маршруту, пока я не получу ответ от другого пакета? – Milla
Так вариант 1 в порядке. Вы можете использовать услуги direct-vm, OSGi или любой другой синхронный вызов, чтобы сделать часть работы кем-то еще. Ответ просто должен быть возвращен в тот же поток –