Ошибка доступа к свойствам env с помощью Camel в JBoss Fuse 6.3 на JBoss EAP 6.4

Я работаю с 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

В чем проблема?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
259
2

Ответы 2

Должен признаться, я отвечаю из головы, пробовали ли вы:

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

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

Другие вопросы по теме