我正在JBoss EAP 6.4上使用Apache Camel和JBoss Fuse 6.3。我想通过Spring DSL访问环境属性(例如JBoss Fuse的家庭位置),但是我遇到了一个错误:使用以下代码
<camel:setProperty id="_setProperty1" propertyName="provaProp">
<camel:simple>${env:JBOSS_FUSE_HOME}</camel:simple>
</camel:setProperty>
我收到此错误
Caused by: org.apache.camel.language.simple.types.SimpleIllegalSyntaxException: Unknown function: env:JBOSS_FUSE_HOME at location 0
在JBOSS_FUSE_HOME
家中更改JBOSS_EAP
并不能解决
<camel:setProperty id="_setProperty1" propertyName="provaProp">
<camel:simple>${env:JBOSS_EAP_HOME}</camel:simple>
</camel:setProperty>
Caused by: org.apache.camel.language.simple.types.SimpleIllegalSyntaxException: Unknown function: env:JBOSS_EAP_HOME at location 0
出什么问题了?
答案 0 :(得分:1)
我必须承认我是从头顶回答,您是否尝试过:
<camel:setProperty id="_setProperty1" propertyName="provaProp">
<camel:simple>{{env:JBOSS_FUSE_HOME}}</camel:simple>
</camel:setProperty>
答案 1 :(得分:1)
不幸的是,ENV变量的简单语言函数创建为sysenv.XXX样式,因此请使用
<camel:simple>${sysenv.JBOSS_FUSE_HOME}</camel:simple>
http://camel.apache.org/simple
另一方面,属性占位符(与简单占位符不同)支持env,您可以通过{{env:xxx}}
样式来实现:
<camel:simple>{{env:JBOSS_FUSE_HOME}}</camel:simple>
由于只能查询一次,因此可以使用常量:
<camel:constant>{{env:JBOSS_FUSE_HOME}}</camel:constant>