我们正在使用camel将数据从我们的数据库路由到我们公司的几个最终用户。我们在camel中配置了几个休息端点,我们通过我们的Oracle数据库通过PL / SQL请求。
其余端点可能看起来像someserver.net/{interfaceId}/{season}/post
。
在Oracle数据库中,我们发送一个逗号分隔的列表,其中包含由java Web服务处理的标识符。
我找不到任何有用的信息如何在转发发布的数据后使用url中的参数。 这就是我配置端点的方式:
<post uri="/{interfaceId}/{season}/post" produces="text/plain">
<to uri="direct:postWithSeason" />
</post>
之后,我想要另一条接收数据和参数{interfaceId}和{season}的路线,并将它们传递给我们的网络服务,其网址为someserver.net/hub/xml/{interfaceId}/{season}/post
。 Web服务正在创建一个XML文件,该文件将转发给最终用户。
路线将类似于
<route id="fetchData">
<from uri="direct:postWithSeason" />
<setHeader headerName="CamelHttpMethod">
<constant>POST</constant>
</setHeader>
<setHeader headerName="CamelHttpUri">
<simple>http://serverWithWebservice.net/</simple>
</setHeader>
<setHeader headerName="CamelHttpPath">
<simple>hub/xml/{interfaceId}/{season}/payloadIds</simple>
</setHeader>
<to uri="http4:serverWithWebservice.net" />
<to uri="file:/someDirectory?fileName=someFileName.xml" />
</route>
那么如何将PL / SQL过程调用的URL中的参数传递到沿着payloadIds的逗号分隔列表调用webservice的路径?我完全没有使用Java构建路由而不是使用XML DSL。
我正在使用JavaEE,Camel和HTTP请求几个月,所以我不熟悉所有基础知识,我找不到任何资源为我的问题提供解决方案。
答案 0 :(得分:0)
Camel REST-DSL将这些存储为Camel Message标头,因此您可以通过${header.interfaceId}
等获取,使用您构建的简单表达式
<setHeader headerName="CamelHttpPath">
<simple>hub/xml/${header.interfaceId}/${header.season}/payloadIds</simple>
</setHeader>