in components-starter/camel-platform-http-starter/src/main/java/org/apache/camel/component/platform/http/springboot/SpringBootPlatformHttpConsumer.java [110:152]
protected void handleService(HttpServletRequest request, HttpServletResponse response) throws Exception {
if (isSuspended()) {
LOG.debug("Consumer suspended, cannot service request: {}", request);
response.sendError(HttpServletResponse.SC_SERVICE_UNAVAILABLE);
return;
}
Exchange exchange = createExchange(true);
exchange.setPattern(ExchangePattern.InOut);
HttpHelper.setCharsetFromContentType(request.getContentType(), exchange);
PlatformHttpMessage msg = new PlatformHttpMessage(request, response, exchange,binding, false);
exchange.setIn(msg);
msg.init(exchange, binding, request, response);
String contextPath = getEndpoint().getPath();
exchange.getIn().setHeader(SpringBootPlatformHttpConstants.CONTEXT_PATH, contextPath);
// set context path as header
String httpPath = (String) exchange.getIn().getHeader(Exchange.HTTP_PATH);
// here we just remove the CamelServletContextPath part from the HTTP_PATH
if (contextPath != null && httpPath.startsWith(contextPath)) {
exchange.getIn().setHeader(Exchange.HTTP_PATH, httpPath.substring(contextPath.length()));
}
if (getEndpoint().isUseCookieHandler()) {
cookieConfiguration = getEndpoint().getCookieConfiguration();
exchange.setProperty(Exchange.COOKIE_HANDLER, new SpringBootCookieHandler(request, response));
}
// we want to handle the UoW
try {
createUoW(exchange);
} catch (Exception e) {
throw new ServletException(e);
}
if (LOG.isTraceEnabled()) {
LOG.trace("Processing request for exchangeId: {}", exchange.getExchangeId());
}
try {
getProcessor().process(exchange);
} catch (Exception e) {
exchange.setException(e);
} finally {
afterProcess(response, exchange);
}
}