我是 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/