在JBoss EAP 6.4上的JBoss Fuse 6.3中使用骆驼访问env属性时出错

时间:2018-12-18 12:23:36

标签: java jboss apache-camel fuseesb spring-dsl

我正在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

出什么问题了?

2 个答案:

答案 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>

http://camel.apache.org/using-propertyplaceholder.html