如何在 Apache Camel 中定义要通过 ref 抛出的异常
Posted
技术标签:
【中文标题】如何在 Apache Camel 中定义要通过 ref 抛出的异常【英文标题】:How to define exception to be thrown through ref in Apache Camel 【发布时间】:2011-08-15 22:13:49 【问题描述】:必须在我用 XML 定义的骆驼路线中抛出异常。发现 throwException
声明可从 Camel 2.3 获得,如下所示:
<throwException ref="forced"></throwException>
但是,我不知道如何定义要抛出的forced
异常类。由于可以使用不同的异常消息多次抛出相同的异常 - 很高兴知道 throwException
是否有其他形式的定义,因此异常类和异常消息是就地定义的。
【问题讨论】:
【参考方案1】:ref 只是对 a 的引用,所以你可以这样做
<bean id="forced" class="java.lang.IllegalArgumentException">
<constructor-arg index="0" value="This is forced"/>
</bean>
<camelContext ...>
...
</camelContext>
【讨论】:
你也可以在camel-spring源码的src/test/java目录下查看从 2.16.0 版本开始,有更优雅的方式来做,可选的异常消息:
<route>
<throwException exceptionType="java.lang.IllegalArgumentException" message="illegal argument found"/>
</route>
【讨论】:
以上是关于如何在 Apache Camel 中定义要通过 ref 抛出的异常的主要内容,如果未能解决你的问题,请参考以下文章
如何在apache camel DSL或camel Processor内部设置其他身份验证属性?
如何在有条件的 apache camel 中添加后处理拦截器?
如何在apache camel 2.23.1版本的处理器交换对象中获取RouteId?