#apache-camel
Вопрос:
Я использую Верблюда, чтобы route http requests
. Клиент достигает моего маршрутизатора Camel на servlet
конечной точке, предоставляя информацию, необходимую для маршрутизации запроса, затем я ищу в базе данных, чтобы разрешить конечную точку. Запросы маршрутизируются правильно, но ответ, который я получаю, кажется, поврежден (я звоню от клиента Rest), здесь поврежденный ответ:
Если я вызову конечную точку назначения без передачи от верблюда, она вернет правильный ответ:
Я также проверил, что ответ не оставляет конечную точку назначения поврежденной.
Вот мой Верблюд configuration classes
:
@Singleton
@Startup
public class CamelStartupBean {
@PostConstruct
public void init() {
CamelContext camelContext = new DefaultCamelContext();
camelContext.addRoutes(new CamelRouteConfiguration());
camelContext.start();
}
static class CamelRouteConfiguration extends RouteBuilder {
@Override
public void configure() {
from("servlet:callService?matchOnUriPrefix=true")
.routeId("callService")
.recipientList(method(CallServiceConfiguration.class, "resolveServiceRoute"));
}
}
static class CallServiceConfiguration {
public String resolveServiceRoute(Exchange exchange) {
String route;
// lookup the database to find a route ...
route = "http://demo.apps.closhlab.osh.local/rest/DemoService?bridgeEndpoint=true";
return route;
}
}
}
Я использую Camel 3.9.0
, и мое приложение развернуто на образе Docker jboss/wildfly:15.0.0.Final
.
Есть идеи? Спасибо.
Ответ №1:
Обновление до версии Camel 3.11.0 решило проблему.