如何从蓝图动态设置 HTTP 方法(Camel-http)
How to set HTTP Method dynamically from blueprint(Camel-http)
我使用 camel-apache companent camel-http。我正在尝试从我的自定义 header 设置 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}没有return值。
toD uri="${header.url}" - 正常工作
尝试在设置 header CamelHttpMethod
时使用 simple 而不是常量
<route>
<from uri="activemq://for_redmine" />
....
<setHeader headerName="CamelHttpMethod">
<simple>${header.custom_http_method}</simple>
</setHeader>
<toD uri="${header.url}"/>
</route>
我使用 camel-apache companent camel-http。我正在尝试从我的自定义 header 设置 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}没有return值。
toD uri="${header.url}" - 正常工作
尝试在设置 header CamelHttpMethod
时使用 simple 而不是常量 <route>
<from uri="activemq://for_redmine" />
....
<setHeader headerName="CamelHttpMethod">
<simple>${header.custom_http_method}</simple>
</setHeader>
<toD uri="${header.url}"/>
</route>