0

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

问题是什么?

4

2 回答 2

1

不幸的是,ENV 变量的简单语言函数被创建为 sysenv.XXX 样式,所以使用

<camel:simple>${sysenv.JBOSS_FUSE_HOME}</camel:simple>

http://camel.apache.org/simple

另一方面,属性占位符(与 simple 不同)支持 env,您可以通过{{env:xxx}}style 执行此操作:

<camel:simple>{{env:JBOSS_FUSE_HOME}}</camel:simple>

由于它只能被查找一次,如果你愿意,你可以使用一个常量:

<camel:constant>{{env:JBOSS_FUSE_HOME}}</camel:constant>

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

于 2018-12-19T12:10:50.840 回答
1

我必须承认我是从头顶回答的,您是否尝试过:

<camel:setProperty id="_setProperty1" propertyName="provaProp">
   <camel:simple>{{env:JBOSS_FUSE_HOME}}</camel:simple>
</camel:setProperty>
于 2018-12-18T21:12:20.420 回答