我有以下路线:
.choise()
.when()
.simple("${body.messageType} == 105")
.to(...)
.when()
.simple("${body.messageType} == 106")
.to(...)
Run Code Online (Sandbox Code Playgroud)
我想用这个枚举来比较。
package myPackage;
public enum Code {
CODE_A("105"),
CODE_B("106")
private String value;
Code(String value) {
this.value = value;
}
public String value() {
return value;
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试做这样的事情,但它不起作用..
.simple("${body.messageType} == ${type:myPackage.Code.CODE_A.value()}")
Run Code Online (Sandbox Code Playgroud)
有办法解决这个问题吗?
根据http://camel.apache.org/simple.html你可以使用
.simple("${body.messageType} == ${type:myPackage.Code.CODE_A}")
Run Code Online (Sandbox Code Playgroud)
在示例中,您尝试过使用
myPackage.Code.value()
Run Code Online (Sandbox Code Playgroud)
不是
myPackage.Code.CODE_A
Run Code Online (Sandbox Code Playgroud)
我通过执行以下操作解决了这个问题:
.setHeader("codeA",constant(myPackage.Code.CODE_A.value()))
.setHeader("codeB",constant(myPackage.Code.CODE_B.value()))
.choise()
.when()
.simple("${body.messageType} == ${header.codeA}")
.to(...)
.when()
.simple("${body.messageType} == ${header.codeB}")
.to(...)
Run Code Online (Sandbox Code Playgroud)
谢谢!
| 归档时间: |
|
| 查看次数: |
3617 次 |
| 最近记录: |