从apache camel route

时间:2016-08-04 22:29:19

标签: enums apache-camel value-of

我对阿帕奇骆驼比较新手。我正在开发名为' Upgrade'使用Java DSL。我有一个名为' Action'它有一个枚举,

public enum bundle{
AAA("Monthly AAA Bundle"),
BBB("Monthly BBB Bundle");
private String upbundle;
private bundle(String upBundle) {this.upbundle = upBundle;}
private getBundle() {return upbundle;}
}

从我想要致电的路线' valueOf()'在枚举上获取BundleName。我有枚举价值' AAA'在交换标题。使用' AAA'我想检索枚举值,即每月AAA捆绑包'并将其存储在交换标题名称' destBundleName'

我用过

.setHeader("destBundleName", simple(Action.bundle.valueOf(header("bm").toString()).getBundle()))

在java.lang.Enum.valueOf中给出了运行时错误"没有枚举常量Action.bundle.header {bm}

但如果我使用

.setHeader("destBundleName", simple(Action.bundle.valueOf("AAA")).getBundle())) it works fine.

这意味着在第一例如header(" bm")。toString()没有用String替换它。

我可以编写调用enum valueof&的process()或bean方法。从我的路线我可以使用该bean方法,但有没有办法直接从路由访问枚举valueOf()使用来自camel头的值作为valueOf()参数。

非常感谢您的帮助。

0 个答案:

没有答案