У меня есть контроллер покоя с отображением запроса следующим образом:
@ PostMapping (value = "fpl / generate / {legIdentifier:. +}"
Мой верблюжий маршрут определен как с ("direct: / fpl / generate /").
Контроллер вызывает веб-службу, веб-служба вызывает класс FluentEndpointInvoker, который вызывает маршрут, определенный выше.
public class FluentEndpointInvoker {
@EndpointInject(uri = BASE_ENDPOINT_URI)
private FluentProducerTemplate producer;
@Value("${server.servlet.context-path}")
private String contextRoot;
public <T, R> T request(Class<T> type, R request, HttpHeaders headers) {
return producer.withProcessor(exchange -> {
exchange.getIn().setBody(request, request.getClass());
headers.forEach((key, value) -> exchange.getIn().setHeader(key, value));
String endpoint = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()
.getRequestURI();
exchange.getIn().setHeader(ROUTE_ENDPOINT_HEADER, "direct:".concat(endpoint.replaceFirst(contextRoot, "")));
}).request(type);
}
}
Сгенерированная конечная точка выглядит примерно так: ///fpl/generate/LH.1234.30Jun2016.FRA.BOG.X1. Как настроить подстановочные знаки на верблюжьем маршруте, чтобы конечная точка могла вызываться