Как установить метод HTTP динамически из светокопии (Camel-http) - PullRequest
0 голосов
/ 08 февраля 2019

Я использую Camel-Apache Companent Camel-http.Я пытаюсь установить метод http из моего пользовательского заголовка.Я использую blueprint

процесс переопределения: exchange.getOut().setHeader("custom_http_method", "GET");

blueprint route:

    <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>

error: org.apache.camel.TypeConversionException: ошибка при преобразовании типа из типа:java.lang.String в требуемый тип: org.apache.camel.http.common.HttpMethods со значением $ {header.custom_http_method} due java.lang.IllegalArgumentException: нет константы перечисления org.apache.camel.http.common.HttpMethods. $ {header.custom_http_method}

, насколько я понял, $ {header.custom_http_method} не возвращает значение.

toD uri = "$ {header.url}" - работает правильно

1 Ответ

0 голосов
/ 08 февраля 2019

Попробуйте использовать простой вместо константы при установке заголовка CamelHttpMethod

 <route>
        <from uri="activemq://for_redmine" />
        ....
         <setHeader headerName="CamelHttpMethod">
          <simple>${header.custom_http_method}</simple> 
         </setHeader> 
        <toD uri="${header.url}"/>
    </route>
...