【问题标题】:Error accessing env properties with Camel in JBoss Fuse 6.3 on JBoss EAP 6.4在 JBoss EAP 6.4 上的 JBoss Fuse 6.3 中使用 Camel 访问 env 属性时出错
【发布时间】:2018-12-18 12:23:36
【问题描述】:

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

有什么问题?

【问题讨论】:

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


    【解决方案1】:

    我必须承认我是从头顶回答的,你有没有试过:

    <camel:setProperty id="_setProperty1" propertyName="provaProp">
       <camel:simple>{{env:JBOSS_FUSE_HOME}}</camel:simple>
    </camel:setProperty>
    

    【讨论】:

      【解决方案2】:

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

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

      http://camel.apache.org/simple

      另一方面,属性占位符(与 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-20
        • 2015-04-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-14
        • 2018-05-07
        相关资源
        最近更新 更多