1

我的休息服务的示例 URI 如下:

http://xx.xx.xxx.xx:8080/myservice/service/encode?encrypt=true&payload=11/11/2013%207:59:15%20AM&ttl=10h

我在有我的服务的节点上使用的服务路由如下。这工作正常。路由应该将我们提供给服务的任何东西桥接起来。

<route id="my-server">
  <from uri="fabric-camel:myClusterId:jetty:http://xx.xx.xxx.xx:8484/myservice/service?matchOnUriPrefix=true" />
  <to uri="jetty:http://xx.xx.xxx.xx:8080/myservice/service?bridgeEndpoint=true&amp;throwExceptionOnFailure=false" />
</route>

我的麻烦在于客户端路线。时间组件工作正常,但我将任何内容附加到 GET 的努力都失败了。如果我能弄清楚如何做到这一点,我可以创建任意数量的客户端示例。

<route id="fabric-client" errorHandlerRef="errorHandler">
  <from uri="timer://foo?fixedRate=true&amp;period=1000"/>
  <to uri="fabric-camel:myClusterId"/>
</route>

有人可以通过将上面的 URI 示例转换为 Sprint DSL 来帮助我吗?我希望你能告诉我怎么做。从那我可以弄清楚如何传递变量。

4

1 回答 1

2

这是我的语法问题的答案。

    <route id="fabric-client" errorHandlerRef="errorHandler">
      <from uri="timer://foo?fixedRate=true&amp;period=1000"/>
      <setHeader headerName="CamelHttpPath">
        <simple>/encode?encrypt=true&amp;payload=11/11/2013%207:59:15%20AM&amp;ttl=10h</simple>
      </setHeader>
      <to uri="fabric-camel:myClusterId"/>
      <log message=">>> ${body}"/>
    </route>

这篇文章是关键。 http://camel.465427.n5.nabble.com/Setting-url-params-in-REST-call-with-Camel-td2257861.html花了很多谷歌搜索。

这个参考可能会帮助其他人,它帮助了我;尤其是并排的 Java 和 Spring DSL。 http://people.apache.org/~dkulp/camel/http.html我实际上不记得我是如何将 Exchange.HTTP_PATH 映射到 CamelHttpPath 的。我想我不得不猜测 - 迟到了。

于 2014-09-17T22:14:49.067 回答