Я работаю с Apache Camel и JBoss Fuse 6.3 на JBoss EAP 6.4. Я хотел бы получить доступ к свойствам среды через 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
В чем проблема?
Должен признаться, я отвечаю из головы, пробовали ли вы:
<camel:setProperty id = "_setProperty1" propertyName = "provaProp">
<camel:simple>{{env:JBOSS_FUSE_HOME}}</camel:simple>
</camel:setProperty>
К сожалению, простая языковая функция для переменных 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>