Альтернатива dfc.properties

Мы подключаемся к серверу documentum из Java progream (используя dfc.jar), чтобы получить документы. Чтобы подключиться к серверу, необходимо, чтобы dfc.properties был доступен в classpath. У нас уже есть один главный файл свойств, поэтому мы хотим избежать еще одного. Вместо этого мы хотим поместить свойства в другой файл свойств, а затем использовать их при подключении к серверу documentum. Я мог бы найти, как использовать хост и порт docbroker из кода Java, то есть с использованием IDfTypedObject.

IDfLoginInfo loginInfoObj = clientX.getLoginInfo();
loginInfoObj.setUser(user);
loginInfoObj.setPassword(pwd);

IDfClient client = new DfClient();

IDfTypedObject cfg = client.getClientConfig();
cfg.setString("primary_host", "myhost");
cfg.setInt("primary_port", myport);

IDfSession docbase_session = client.newSession(docbase, loginInfoObj);

Подобно тому, как primary_host и primary_port устанавливаются в коде, есть ли способ установить через код следующие свойства из dfc.properties? dfc.globalregistry.repository dfc.globalregistry.username dfc.globalregistry.password

3 ответа

Решение

Несмотря на то, что вам нужна информация о подключении для глобального реестра, вам не нужно, чтобы эти данные были правильными. Конечно, если вы не хотите использовать функции BOF (TBO/SBO).

В вашем случае, если вам это не нужно (BOF), просто оставьте dfc.properties на месте с фиктивными данными для глобального реестра и продолжайте использовать код для динамической установки сведений о соединении с docbroker.

Свойства DFC должны быть в его собственном файле. Однако этот файл может находиться за пределами самого приложения.

Вариант 1: Включить

Поместите оператор включения в начале dfc.properties в вашем classpath указать на внешнюю конфигурацию, вот так:

#include /path/to/external/dfc.properties

Вы даже можете использовать гибридные подходы, включив несколько файлов и / или добавив / перезаписав в своем приложении dfc.properties:

#include /path/to/common/dfc.properties
#include /path/to/more/specific/dfc.properties     # may or may not override
<app specific parameters go here>                  # may or may not override

Вариант 2: переменная среды

Установите переменную среды dfc.properties.file указать на ваш внешний dfc.properties, Измените запуск вашего сервера приложений на что-то вроде этого:

java ... –Ddfc.properties.file=/path/to/external/dfc.properties ...

Если вы используете Tomcat, вы можете сделать это, установив системную переменную в самой ОС:

set JAVA_OPTS=–Ddfc.properties.file=/path/to/external/dfc.properties

Подвести итоги

Я не рекомендовал бы устанавливать параметры DFC в коде. Рекомендуется иметь отдельный файл конфигурации вне приложения. Помните, что ваша среда исполнения (JVM) должна иметь доступ к файловой системе по мере необходимости. Это относится к обеим альтернативам выше.

Просто добавьте, что при использовании classpath для определения местоположения основного файла dfc.properties файл dfc.properties должен находиться в файле jar или zip, иначе он будет проигнорирован.

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