我在apache上構建了一個web服務,作爲karaf上的一個包,它接受請求並將信息保存在數據庫中。在另一條路線上的Apache駱駝藍圖Web服務響應
在此之後,另一個捆綁包將獲取此插入的記錄,修改數據並將其保存回數據庫。
現在我需要的原始請求包含修改後的數據的響應因此,除了對看起來像這樣
<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>
Web服務的路線,我需要一個又一個這樣的
<route id="cxfResponse">
<from uri="sql:SELECT * FROM myTable"/>
<!-- to web service response in any way -->
</route>
有沒有辦法做到這一點?
對於變體1:是否強制其他包的操作停留在另一個包中,而不是同一個包中的同步。對於變體2:我無法做任何事情調用Web服務,所以我也不能設置一個URI來回叫。當我使用jms時,有可能在路由中等待,直到我從另一個包中收到答案爲止。 – Milla
所以變體1是好的。您可以使用direct-vm,OSGi服務或任何其他同步調用來完成部分工作。響應只需要在同一個線程上返回 –