当前位置: 首页 > 知识库问答 >
问题:

ApacheCamel-httpProducer不使用带有丰富模式的GET方法

夏知
2023-03-14

我有一个RESTful Webservice,我想在骆驼路上用它来丰富内容。参见类似的代码:

from("direct:in") // Here comes XML
    .to("validator:something.xsd") // validate it
    .unmarshal("something-jaxb") // put it into a POJO
    .setHeader(Exchange.HTTP_URI, simple("http://localhost:12345/restws/${header.foo}")) // Create the dynamic URI with simple
    .setHeader(Exchange.HTTP_METHOD, constant("GET")) // set the HTTP-Method to use
    .enrich("http://dummy", new MyAggregator()) // fetch some Information from a Restful Webservice
    .to("direct:out"); // send the Message to another route

如果我运行这个,我会得到以下错误:

< code >没有类型转换器可用于从type: de.my.Class转换为所需的type: java.io.InputStream,值为de.my.Class@620ee765。

在我看来,他试图将 Exchange 的主体发送到 http-Endpoint,尽管我将 HTTP 方法设置为 GET。我已经阅读了文档 (https://camel.apache.org/http.html) 和下面的使用 GET 或 POST 调用它描述了选择方法的算法首先查看标头 (1.使用标题中提供的方法)。

我发现了一些变通方法,描述了如何将主体移动到Exchange属性并在Webservice-Call之后再次将其移动回来,但这不可能是它……

编辑:

    就像克劳斯·易卜生提到的那样,enrich不支持动态uri。在示例中修复了这个问题!

共有3个答案

柳高卓
2023-03-14

波城里有什么?GET 参数应为资源标识符和查询参数。这需要一个自定义转换器。

http://fusesource.com/docs/esb/4.2/rest/RESTIntro.html

也许可以考虑改用restlet……我认为这更容易。

http://camel.apache.org/restlet.html

龚沛
2023-03-14

如果它是“满列表”的资源,听起来你会想拆分列表并获取每个资源

万嘉石
2023-03-14

丰富和污染丰富都不支持其endpoint的动态uris。您可以使用支持动态uris的收件人列表以及聚合策略,而不是使用丰富。

 类似资料:
  • 要表现色彩里的浓烈、富足感可藉由组合一个有力的色彩和它暗下来的补色。例如,深白兰地酒红色就是在红色中加了黑色,就像产自法国葡萄园里陈年纯美的葡萄酒,象征财富。白兰地酒红色和深森林绿如果和金色一起使用可表现富裕。这些深色、华丽的色彩用在各式各样的织料上,如皮革和波纹皱丝等等,可创造出戏剧性、难以忘怀的效果。这些色彩会给人一种财富和地位的感觉。 补色色彩组合 原色色彩组合 单色色彩组合 49 3 49

  • 问题内容: 我是Node.js的新手,已经提出了使用Node.js开发基于富Web的应用程序的要求。 现在,我正在研究node.js的入门指南。我有机会在这里查看页面,并对数百个框架感到困惑。我不知道如何选择合适的框架,因此需要帮助以做出完美的决定。让我解释一下我的要求。 想要为所有功能开发RESTfull API。(是否有OAuth图书馆?) 想要在API之上开发Web应用程序。必须以某种方式设

  • 2.2.3.丰富的特性 Linux 系统本身就具有很多实用的特性。 Android 从中受益良多,例如内存管理、电源管理和网络部分。

  • 由于我刚接触DataFlow/Beam,概念还不太清楚(或者至少我在开始编写代码时有困难),我有很多问题: 什么是最好的模板或模式,我可以用来做到这一点?我应该先执行BigQuery的PTransform(然后执行PubSub的PTransform)还是先执行PubSub的PTransform? 我怎么做加入?比如? PubSub的最佳窗口设置是什么?BigQuery的PTransform部分的窗

  • 问题内容: 对于客户,我们需要为集成测试生成详细的测试报告,该报告不仅显示所有内容都是绿色的,而且还显示测试的结果。我的同事和我都是懒惰的人,我们不想破坏电子表格或文本文档。 为此,我想到了一种在每个@Test带注释的方法和每个测试类上使用JavaDoc注释记录更复杂的集成测试的方法。对于测试人员来说,查看哪个要求,Jira票证或测试所链接的内容以及测试实际尝试执行的操作是一个很好的帮助。我们也希

  • 直接在url跟参数 如接口URL为:http://localhost:8080/api 则完整地址为: http://localhost:8080/api?name=doc.result.5&version=&app_key=test&data=%257B%2522goods_name%2522%253A%2522iphoneX%2522%257D&timestamp=2018-06-22%200