骆驼/javaee-转发后重点URL模式,并从剩余端点到以下路由/网站服务发布数据



我们正在使用骆驼将数据从数据库路由到公司中的几个结束者。我们有几个在骆驼中配置的休息端点,我们从Oracle数据库中请求通过PL/SQL请求。

其余端点看起来像someserver.net/{interfaceId}/{season}/post。在Oracle DB中,我们正在发送带有Java WebService处理的标识符的逗号分隔列表。

我找不到任何有用的信息,如何在转发已发布的数据后如何使用URL中的参数。这就是我配置端点的方式:

<post uri="/{interfaceId}/{season}/post" produces="text/plain">
   <to uri="direct:postWithSeason" />
</post>

之后,我想要另一条路由,该路由接收数据和参数{InterfaceId}和{season},然后将它们传递给我们的Web服务,该网络服务具有someserver.net/hub/xml/{interfaceId}/{season}/post之类的URL。WebService正在创建一个XML文件,该文件已转发给enduser。

路线将像

<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中获取参数到沿payloadID的逗号分隔列表调用Web服务的路由?我完全可以在Java中构建路线,而不是使用XML DSL。

我仅与Javaee,Camel和HTTP请求合作几个月,因此我不熟悉所有基础知识,我找不到任何资源,为我的问题提供解决方案。

骆驼rest-dsl将它们作为骆驼消息标头存储,因此您可以通过 ${header.interfaceId}等获得,而在那个简单的表达式中,您可以构建

<setHeader headerName="CamelHttpPath">
  <simple>hub/xml/${header.interfaceId}/${header.season}/payloadIds</simple>
</setHeader>

相关内容

  • 没有找到相关文章

最新更新