Системная переменная среды CFML (OpenBD)

Как получить доступ к системным переменным среды в CFML? Требуется прочитать настройки подключения к базе данных CloudFoundry.

Требуется переменная "VCAP_SERVICES".

Есть ли функция для этого?

Спасибо,

Иван


person friedkiwi    schedule 24.04.2011    source источник
comment
Не возражаете, если я спрошу, какая у вас среда хостинга? ОС, сервер J2EE и сервер CF помогут лучше получить ответ.   -  person Dave Long    schedule 25.04.2011
comment
Это среда выполнения OpenBlueDragon в среде JavaWeb CloudFoundry.com.   -  person friedkiwi    schedule 26.04.2011
comment
Если у вас есть доступ к самому серверу, попробуйте мой комментарий к ответу Сергея.   -  person Dave Long    schedule 26.04.2011


Ответы (1)


Следующее решение, кажется, работает очень-очень частично на моем Ubuntu (оно получает далеко не все переменные, перечисленные env - немного, это может быть хорошо, потому что JVM просто не получает большинство из них), но может как-то работать на вас:

<cfset properties = createObject("java", "java.lang.System").properties />
<cfdump var="#properties#">

Искомая переменная может иметь префикс user..

person Sergey Galashyn    schedule 24.04.2011
comment
Похоже, что это возвращает все переменные, переданные в JVM во время запуска. Я предполагаю, что вам нужно будет передать переменные среды, к которым вам нужен доступ, в JVM. - person Dave Long; 25.04.2011
comment
IIRC System.getEnv() возвращает карту переменных системной среды. Просто убедитесь, что это не устарело .. - person Leigh; 25.04.2011
comment
@Leigh Хороший, но похоже, что он также не возвращает все переменные среды, доступные через оболочку. Хотя набор переменных немного отличается от properties. - person Sergey Galashyn; 26.04.2011
comment
Да, я не уверен, как это работает на *nix. На окнах могут быть некоторые перекрытия. Так что вы все равно можете использовать свойства ;-) download.oracle.com /javase/tutorial/essential/environment/ - person Leigh; 26.04.2011