apache-camel - Camel 简单表达式语言-如何动态获取属性值

标签 apache-camel

我是 Camel 的新手,使用简单的表达式从 Java DSL 中的属性文件中获取值。

.setProperty("PortalUrl", simple("properties:Portal.url"))

属性文件值-
Portal.url=abc.com/example

但是现在我需要从属性文件中获取客户特定的 URL。 示例值 -

Portal.url.customer1=abc.com/example/abcd Portal.url.customer2=abc.com/example/xyz

客户名称在请求本身中,所以我想这样做
.setProperty("PortalUrl", simple("properties:Portal.url."+"${body.customerName}"))

但是上面的代码没有工作它给我 PortalUrl 属性的值作为 properties:Portal.ulr.customer1

当我尝试使用直接的硬编码值时,它从属性文件中为我提供了正确的 URL - .setProperty("PortalUrl", simple("properties:Portal.url."+"customer1"))

它返回了正确的值 - abc.com/example/abcd

但我想动态获取 URL 作为传入请求中的客户名称。 谁能帮我解决这个问题,并解释一下简单的工作原理。

最佳答案

你试过用简单语言的${body}函数吗:

 .setProperty("PortalUrl", 
     simple("${properties:Portal.url.${body.customerName}}"))

关于apache-camel - Camel 简单表达式语言-如何动态获取属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39508220/

相关文章:

java - 使用 .split().tokenizeXML() 在 Camel 中分割 xml 文件?

unit-testing - Apache Camel bean 单元测试

java - 使用apachecamel解析pdf文件

apache-camel - Apache Camel SFTP 零大小文件下载

spring - Apache Camel : how store variable for later use

apache-camel - 如何在多个服务器节点中部署相同的 Camel 路由以实现负载平衡和故障转移?

logging - apache Camel ftp 不会记录错误的密码

java - 使用域在 Camel 上创建路由

xml - 使用自定义拆分方法的 Camel 拆分器

java - Apache Camel 中的 header 谓词