Как установить метод HTTP динамически из светокопии (Camel-http)
Я использую Camel-Apache Companent Camel-HTTP. Я пытаюсь установить метод http из моего пользовательского заголовка. Я использую план
переопределить процесс: exchange.getOut().setHeader("custom_http_method", "GET");
проектный маршрут:
<route>
<from uri="activemq://for_redmine" />
<setHeader headerName="Content-Type">
<constant>application/json; charset=utf-8</constant>
</setHeader>
<setHeader headerName="X-Redmine-API-Key">
<constant>beb50ea768f5d16c96030a9dbbf3cb5c4a5ccdcd</constant>
</setHeader>
<setHeader headerName="CamelHttpMethod">
<constant>${header.custom_http_method}</constant>
</setHeader>
<toD uri="${header.url}"/>
</route>
ошибка: org.apache.camel.TypeConversionException: ошибка при преобразовании типа из типа: java.lang.String в требуемый тип: org.apache.camel.http.common.HttpMethods со значением ${header.custom_http_method} из-за java.lang.IllegalArgumentException: без константы перечисления org.apache.camel.http.common.HttpMethods.${Header.custom_http_method}
насколько я понял, $ {header.custom_http_method} не возвращал значение.
toD uri = "$ {header.url}" - работает правильно
1 ответ
Попробуйте использовать простой вместо константы при установке заголовка CamelHttpMethod
<route>
<from uri="activemq://for_redmine" />
....
<setHeader headerName="CamelHttpMethod">
<simple>${header.custom_http_method}</simple>
</setHeader>
<toD uri="${header.url}"/>
</route>