Альтернатива 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, иначе он будет проигнорирован.