我很难理解如何将一个存储在body中的变量作为throwException的参数传递。
.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.
有什么建议吗?谢谢。
3条答案
按热度按时间hgc7kmma1#
所以你在Java中使用Simple语言,但是你有一些语法问题。没什么大问题。你没有完成Simple表达式的分隔符。你也不必连接字符串。
更改代码:
错误代码:${正文[错误代码]}”))
我在公交车上,用我的手机,所以不能检查代码是否运行,但它应该指出你在正确的方向。
c0vxltue2#
sgtfey8w3#
有关示例,请参见camel-core的单元测试
https://github.com/apache/camel/blob/master/camel-core/src/test/java/org/apache/camel/processor/ThrowExceptionMessageTest.java