gpt4 book ai didi

java - 另一条 route 的 Apache Camel 蓝图 Web 服务响应

转载 作者:行者123 更新时间:2023-11-30 03:15:28 26 4
gpt4 key购买 nike

我在 apache Camel 中构建了一个 Web 服务,作为 karaf 上的 bundle 运行,它接受请求并将信息保存在数据库中。

在此之后,另一个包获取此插入的记录,修改数据并将其保存回数据库。

现在我需要原始请求的响应来包含修改后的数据,因此除了如下所示的 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>

我需要另一个这样的

<route id="cxfResponse">
<from uri="sql:SELECT * FROM myTable"/>
<!-- to web service response in any way -->
</route>

有什么办法可以做到这一点吗?

最佳答案

您必须将正文设置为所需的响应,作为第一条路线的最后一步。无法在此路由之外设置响应。

所以我认为有两种方法可以解决您的问题。

  1. 以同步方式在第一个路由内完成您需要做的所有事情
  2. 将您的服务更改为完全异步

对于变体 2,您可以使用 jms 之类的消息传递,或者为第一个调用提供一个 Web 服务 URI 以进行回调。

如果您的服务负载很高,完全异步的方法可能会让您的系统工作得更好。

关于java - 另一条 route 的 Apache Camel 蓝图 Web 服务响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32754970/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com