java - 在 Camel 中抛出带有自定义错误消息的异常

标签 java exception apache-camel jbossfuse

我试图在 Camel 中抛出带有自定义错误消息的自定义异常。我可以通过为已定义的 bean 设置值来实现此目的,如下所示:

<CamelContext>
  <route>
    <from uri="timer:myTimer"/>
    <bean ref="myException" method="setErrorCode(errorCode)"/>
    <bean ref="myException" method="setErrorMessage(errorMessage)"/>
    <throwException ref="myException"/>
  </route>
</CamelContext>

这个方法效果很好。但这种方法的问题是,只有一个 MyException 实例,当有多个并发消费者时,它会导致一种竞争条件。

由于这个问题,我想每次都创建一个新的 excpetion 实例。不幸的是,我没有看到任何方法可以在 Camel 路由中创建异常实例,为其设置值然后抛出。

我读到,从camel 2.17开始,有一个附加属性message来设置错误消息。对我来说,有一些限制迫使我坚持使用camel 2.15

那么,在camel中创建带有错误代码和错误消息的自定义异常的正确方法是什么?

最佳答案

只需调用一个创建并抛出新异常的 bean 方法

public void blowUp(...) {
   throw new MyException(...);
}

关于java - 在 Camel 中抛出带有自定义错误消息的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41033306/

相关文章:

java - Buildozer,如何添加外部 python 包?

c++ - 允许编译器优化异常抛出吗?

java - Camel JMS 事务处理不起作用

c# - 程序不包含适合入口点的静态 'main' 方法

parsing - XAML解析异常

java - header 中的 Camel Split list<MyObject>

java - 如何使用 HL7 监听器配置 Apache Camel 并部署在 Tomcat 中

java - 延迟 while 循环

java - java中如何将值插入数据库

java - Java 中的 PostgreSQL 用户输入减法