3

我们正在从 Java 程序(使用 dfc.jar)连接到 documentum 服务器以提取文档。为了连接到服务器,它需要我们使 dfc.properties 在类路径中可用。我们已经有一个主属性文件,所以要避免再有一个。相反,我们希望将属性放在其他属性文件中,然后在连接到 documentum 服务器时使用它们。我可以找到如何从 Java 代码中使用 docbroker 主机和端口,即使用 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

4

3 回答 3

6

DFC 属性必须在其自己的文件中。但是,此文件可以驻留在应用程序本身之外。

选项 1:包括

在类路径的开头放置一个包含dfc.properties语句以指向外部配置,如下所示:

#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) 必须能够根据需要访问文件系统。这适用于上述两种选择。

于 2014-11-14T14:47:00.797 回答
0

尽管您需要获得全局注册表的连接信息,但您实际上并不需要正确地提供这些详细信息。当然除非你想使用 BOF (TBO/SBO) 功能。

在您的情况下,如果您不需要它(BOF),只需将 dfc.properties 与全局注册表的虚拟数据一起保留,并继续使用代码来动态设置 docbroker 连接详细信息。

于 2014-11-14T14:37:09.067 回答
0

只是补充一点,如果使用类路径来定义主 dfc.properties 的位置,则 dfc.properties 文件需要位于 jar 或 zip 文件中,否则将被忽略。

于 2017-05-30T09:37:46.217 回答