Я новичок в Apache Camel.Я пытаюсь создать маршруты для вызова нескольких остальных API и объединения ответа в один.Но по какой-то причине создаваемый мной запрос JSON не достигает остальной конечной точки.Во время отладки я вижу, что объекты Exchange имеют значения, которые я установил, и преобразуются в байтовый массив, а с другой стороны, API остальных получает пустые объекты.
Я работаю над загрузочным проектом Spring, и япробовал разные способы составления запроса к JSON, включая Gson и Jackson.Ничего из этого не работает.
Пожалуйста, помогите.
from("direct:oneResponse")
.multicast(new MyAggregationStrategy()).parallelProcessing()
.to("direct:rest1call", "direct:rest2call")
.end();
from("direct:rest1call")
.routeId("rest1call")
.setHeader(Exchange.HTTP_METHOD, constant("POST"))
.setHeader("Content-Type", constant("application/json"))
.setHeader("Accept", constant("application/json"))
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
exchange.getIn().setBody(<<valid json>>); //json values as required for the rest call.
}
})
.to("http4://localhost:5555/mock/rest1call")
.setProperty("route", simple("routeId"))
.unmarshal(new JacksonDataFormat(Rest1Response.class));
from("direct:rest2call")
.routeId("rest2call")
.setHeader(Exchange.HTTP_METHOD, constant("POST"))
.setHeader("Content-Type", constant("application/json"))
.setHeader("Accept", constant("application/json"))
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
exchange.getIn().setBody(<<valid json>>); //json values as required for the rest call.
}
})
.to("http4://localhost:5555/mock/rest2call")
.setProperty("route", simple("routeId"))
.unmarshal(new JacksonDataFormat(Rest2Response.class));