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

在Camel SpringBoot项目中传播请求参数值

佘京
2023-03-14

你好,我有Spring引导2项目,我正在使用骆驼的路线。

我有一个骆驼Restendpoint和一个骆驼路线:

 rest("/").produces("application/json")
.get("hello")
.param().name("url").type(RestParamType.query)
.dataType("String").endParam()
.to("direct:hello");
/////////////////////////////////////////////    
  System.out.println("starterd");
boolean startupRoute = true;
from("direct:hello").autoStartup(startupRoute)
    .tracing()
    .streamCaching()
    .process(exchange -> exchange.getIn()
        .setBody(exchange.getIn()
            .getBody()))
    .convertBodyTo(String.class)
    .marshal()
    .json(JsonLibrary.Jackson)
    .setHeader("Content-Type", constant("application/json"))
    .setHeader("Accept", constant("application/json"))
    .setHeader(Exchange.HTTP_METHOD, constant("GET"))
    .setHeader(Exchange.HTTP_URI).header("url")
    .log(LoggingLevel.INFO, "${body}")
    .removeHeader(Exchange.HTTP_PATH)
    .to("http4://url")
    .log(LoggingLevel.INFO, "This is my body: ${body}")
    .to("activemq://hello?exchangePattern=InOnly");
System.out.println("finished");

我也尝试过使用spring boot rest controller,但在获取.To(${url})中的参数值时仍然存在问题

@GetMapping(value = "/finally")
  public String sendFromEndpointToActiveMq(@RequestParam(value = "url") String url) throws Exception {

  producerTemplate.sendBody("direct:hello", url);

return "done";

编辑:我已经编辑了路线

共有1个答案

费子濯
2023-03-14

用这个试试

System.out.println("starterd");
boolean startupRoute = true;
from("direct:hello").autoStartup(startupRoute)
    .tracing()
    .streamCaching()
    .process(exchange -> exchange.getIn()
        .setBody(exchange.getIn()
            .getBody()))
    .convertBodyTo(String.class)
    .marshal()
    .json(JsonLibrary.Jackson)
    .setHeader("Content-Type", constant("application/json"))
    .setHeader("Accept", constant("application/json"))
    .setHeader(Exchange.HTTP_METHOD, constant("GET"))
    .setHeader(Exchange.HTTP_URI)
    .header("url")
    .log(LoggingLevel.INFO, "${body}")
    .removeHeader(Exchange.HTTP_PATH)
    .to("http4://url")
    .to("direct:hi");

from("direct:hi").log(LoggingLevel.INFO, "This is my body: ${body}")
    .recipientList(simple("activemq://${header.activemq}"+"?exchangePattern=InOnly"));
System.out.println("finished");
 类似资料:
  • 我在API中传递一个数组作为get请求的参数。我想把这个数组作为查询参数传递给HTTP请求者。 param1和param2通过流变量捕获,并与HTTP请求程序一起发送 对param3使用flow变量可以用其他内容覆盖中断

  • 我有一些超文本传输协议请求参数,我需要添加作为sping-sleuth中的传播密钥。 注意:我知道spring-sleuth默认添加标头。我也需要注入超文本传输协议请求Patameter。 任何帮助都将被告知。

  • 我是Spring MVC的新手,我正在尝试将javascript中的日期作为请求参数传递 我的控制器看起来像- 我的问题是如何从javascript调用-如URL应该是什么样子 我需要一种方法来解析日期,以便Spring可以识别它吗?

  • 当我将参数嵌入到下面的路径中时,我可以成功地传递参数 我应该使用‘参数’tabe只有当我做POST方法?我知道向JMeter传递参数是一个简单的问题,但我不能解决我的问题。

  • 问题内容: 我应该如何在jQuery Ajax请求中传递查询字符串值?我目前按照以下方式进行操作,但是我敢肯定有一种更清洁的方法,不需要我手动编码。 我已经看到了将查询字符串参数作为数组传递的示例,但是我看到的这些示例没有使用模型,而是直接使用。例如: 我更喜欢使用$ .ajax()格式,因为这是我习惯的格式(没有特别好的理由-只是个人喜好)。 编辑09/04/2013: 在我的问题结束(如“太过

  • 我使用guzzle作为http客户端来测试我的symfony api。 有一个url选项在留档,但我如何通过userid 当我用curl测试的时候 curl-i-X删除http://localhost/us/serenify/web/app_dev.php/userapi/delete/1/6 我的api运行良好,显示了适当的响应。 但是我不能用guzzle测试它,因为我找不到传递参数的选项。