Здравствуйте, у меня есть проект Spring Boot 2, и я использую верблюда для маршрутов.
У меня есть конечная точка отдыха верблюда и маршрут верблюда:
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");
Что я хочу сделатькогда я отправляю запрос следующим образом:
http://localhost:8080/camel/hello/?url=http://localhost:8081/hi
Значение url, которое должно быть установлено в первом .to () в маршруте:
.to ("{url}? BridgeEndpoint = true")
Я также пытался использовать контроллер пружинной загрузки, но у меня все еще есть проблемы с получением значения параметрав .to ($ {url}
@GetMapping(value = "/finally")
public String sendFromEndpointToActiveMq(@RequestParam(value = "url") String url) throws Exception {
producerTemplate.sendBody("direct:hello", url);
return "done";
РЕДАКТИРОВАТЬ: я редактировал маршрут