0

我使用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}" - 工作正常

4

1 回答 1

2

设置标头 CamelHttpMethod 时尝试使用简单而不是常量

 <route>
        <from uri="activemq://for_redmine" />
        ....
         <setHeader headerName="CamelHttpMethod">
          <simple>${header.custom_http_method}</simple> 
         </setHeader> 
        <toD uri="${header.url}"/>
    </route>
于 2019-02-08T07:08:35.957 回答