我是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作为传入请求中的客户名称。 谁能帮助我解决这个问题,并解释一下如何简单起作用。
答案 0 :(得分:2)
您是否尝试使用简单语言的${body}
函数:
.setProperty("PortalUrl",
simple("${properties:Portal.url.${body.customerName}}"))