Exception 如何将主体变量作为参数传递给自定义异常

Exception 如何将主体变量作为参数传递给自定义异常,exception,apache-camel,custom-error-handling,Exception,Apache Camel,Custom Error Handling,我正在努力理解如何将存储在主体中的变量作为ThroweException的参数传递。 这是我的代码: .when(simple("${body[errorCode]} contains '101'")) .throwException(new IllegalArgumentException( "Action not allowed- Error code:" + ${body[errorCode])) .otherwise() 当我运行应用程序时,传递给ErrorHandling的消息是

我正在努力理解如何将存储在主体中的变量作为ThroweException的参数传递。 这是我的代码:

.when(simple("${body[errorCode]} contains '101'"))
.throwException(new IllegalArgumentException(
"Action not allowed- Error code:" + ${body[errorCode]))
 .otherwise()
当我运行应用程序时,传递给ErrorHandling的消息是

'Action not allowed- Error code:${body[errorCode]', no replacing for errorCode variable.

有什么建议吗?Tnks.

因此,您在Java中使用的是简单语言,但存在一些语法问题。没什么大不了的。您没有完成简单表达式的分隔符。此外,您不必连接字符串

更改代码:

.throwException(new IllegalArgumentException("Action not allowed- Error code:" + ${body[errorCode]))
致: .ThroweException(新的IllegalArgumentException(“不允许操作-错误代码:${body[errorCode]}”))


我在公交车上,正在使用手机,因此无法检查代码是否运行,但它应该为您指出正确的方向。

有关示例,请参阅camel core的单元测试


不起作用。消息将字符串作为“${body[errorCode]}”,它无法替换实际值。尝试使用:simple(${body[errorCode]}”).getText()和simple(${body[errorCode]}”).toString()但不使用。链接可能会消亡。请以后粘贴一个片段。