Apache camel 如何替换DefaultHeaderFilterStrategy
我知道我可以为特定的终点设置HeaderFilters策略,但是 如何使用适用于所有路线的自定义策略覆盖Apache camel 如何替换DefaultHeaderFilterStrategy,apache-camel,Apache Camel,我知道我可以为特定的终点设置HeaderFilters策略,但是 如何使用适用于所有路线的自定义策略覆盖DefaultHeaderFilterStrategy 我们正在使用Camel的Servlet侦听器。我们可以在中提供一些东西,用我们自己的类替换DefaultHeaderFilterStrategy。您可以创建自己的HeaderFilterStrategy类实现,并在端点配置中引用它 <lang:groovy id="MyHeaderFilter"> <lang:i
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。该示例将策略添加到一个终点。有没有办法将其添加到所有端点?谢谢。你知道有没有一种方法可以让世界变得更全球化。。。适用于所有组件?