Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache camel 如何替换DefaultHeaderFilterStrategy_Apache Camel - Fatal编程技术网

Apache camel 如何替换DefaultHeaderFilterStrategy

Apache camel 如何替换DefaultHeaderFilterStrategy,apache-camel,Apache Camel,我知道我可以为特定的终点设置HeaderFilters策略,但是 如何使用适用于所有路线的自定义策略覆盖DefaultHeaderFilterStrategy 我们正在使用Camel的Servlet侦听器。我们可以在中提供一些东西,用我们自己的类替换DefaultHeaderFilterStrategy。您可以创建自己的HeaderFilterStrategy类实现,并在端点配置中引用它 <lang:groovy id="MyHeaderFilter"> <lang:i

我知道我可以为特定的终点设置HeaderFilters策略,但是

如何使用适用于所有路线的自定义策略覆盖
DefaultHeaderFilterStrategy


我们正在使用Camel的Servlet侦听器。我们可以在中提供一些东西,用我们自己的类替换
DefaultHeaderFilterStrategy

您可以创建自己的
HeaderFilterStrategy
类实现,并在端点配置中引用它

<lang:groovy id="MyHeaderFilter">
    <lang:inline-script>
        import org.apache.camel.Exchange
        import org.apache.camel.spi.HeaderFilterStrategy

        class MyHeaderFilter implements HeaderFilterStrategy {
            public boolean applyFilterToCamelHeaders(String headerName, Object headerValue, Exchange exchange) {
                return false
            }
            public boolean applyFilterToExternalHeaders(String headerName, Object headerValue, Exchange exchange) {
                return !(headerName in ['desirableHeaderName'])
}
        }
    </lang:inline-script>
</lang:groovy>

导入org.apache.camel.Exchange
导入org.apache.camel.spi.HeaderFilterStrategy
类MyHeaderFilter实现HeaderFilterStrategy{
公共布尔applyFilterToCamelHeaders(字符串headerName、对象headerValue、Exchange){
返回错误
}
公共布尔applyFilterToExternalHeaders(字符串头名称、对象头值、交换){
返回!(headerName在['DesiredHeaderName']中)
}
}
然后

<to uri="activemq:dummy?headerFilterStrategy=#MyHeaderFilter"/>

UPD.
还可以为整个组件设置自定义标题过滤器

<bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent">
  <property name="headerFilterStrategy" ref="MyHeaderFilter"/>
</bean>


谢谢@Greenev。该示例将策略添加到一个终点。有没有办法将其添加到所有端点?谢谢。你知道有没有一种方法可以让世界变得更全球化。。。适用于所有组件?